Wie kann ich die Transaktion mit oracle SQL?
Ich versuche, verwenden Sie die Transaktion Blöcke auf eine SQL-Konsole, die eine Oracle-DB. Ich bin es gewohnt zu verwenden transaxction Blöcke in PostgreSQL wie
BEGIN;
<simple sql statement>
END;
aber oracle scheint es, dass dies nicht möglich ist. Ich bin immer "ORA-00900" - Fehler und ich weiß nicht, wie zu beheben. Wenn ich nur die Verwendung von SQL-Statements wie
<simple sql statement>
COMMIT;
es funktioniert. Aber gibt es nicht ein tag, um zu definieren, den Beginn einer Transaktion? Ich habe versucht,
START TRANSACTION;
<simple sql statement>
COMMIT;
Aber es wirft noch ein ORA-00900. Mein Betriebssystem ist windows, ich benutze IntelliJ IDEA und einer Oracle 11g DB.
Sie müssen nicht explizit eine Transaktion starten, Oracle verfolgt, Sie. Sie müssen jedoch entweder ein commit oder ein rollback für die Arbeit, die Sie getan haben. und zum ausführen einer BEGIN-END; block, müssen Sie den umgekehrten Schrägstrich in einer neuen Zeile. Wenn Sie noch eine ORA-00900 danach, dann schauen Sie sich die syntax von der "einfachen sql-Anweisung", wie Oracle-syntax kann etwas anders sein als Sie sind und nicht wie früher auch.
InformationsquelleAutor Vortilion | 2016-02-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie eine implizite Transaktion blockieren durch die Ausgabe einer SQL-Anweisung wie in
Für anonyme Blöcke oder PL/SQL-Prozeduren/Funktionen/packages mehrere Optionen zur Verfügung, die Sie gesehen haben können in Postgres.
Wenn Sie mehrere Anweisungen, müssen alle erfolgreich ausgeführt oder alle fallen (ein atomic transaction dann, aus die Dokumentation, die Sie tun können:
InformationsquelleAutor kevinsky
Normal, die read committed-Transaktion beginnt automatisch mit dem ersten geänderten Zeile.
Wenn Sie möchten, legen Sie die Transaktion explizit zu verwenden:
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
- aber die Transaktion wird physisch angelegt, wenn die erste Zeile geändert wird, nicht wenn diese Anweisung ausgeführt wird.oder
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
- in diesem Fall Lesen Sie die Konsistenz wird mit diesem Befehl ausgeführt wird.READ ONLY
Transaktion hat die gleichen lese-Konsistenz-Effekt.InformationsquelleAutor Husqvik