In einem Plsql-Block werden alle Anweisungen Roll-Backs erhalten, wenn die Anweisung durch Fehler in DML?In einem PLSQL-Block werden alle Anweisungen rückgängig gemacht, wenn eine der Anweisungen durch Fehler in DML?
Antwort
Nicht an sich. Mit Autocommit auf der einzelnen SQL-Anweisung bildet eine Transaktion und wird nach Abschluss verpflichtet/Rollback. Ein Block bildet eine Aggregation von Anweisungen. Wenn Sie eine der Anweisungen eines Blocks nicht erfolgreich ausgeführt haben, wurden die Statements (innerhalb des Blocks) noch ausgeführt (und committed).
Wenn Sie möchten, dass eine Gruppe von Anweisungen sich transaktional verhält, müssen Sie "BEGIN [TRANSACTION] ... COMMIT/ROLLBACK" verwenden und die Fehlerbehandlung entsprechend Ihren Anforderungen durchführen.
Nein. Sie haben die Möglichkeit, einen bestimmten Satz von Anweisungen rückgängig zu machen, wenn eine Ausnahme oder ein Fehler auftritt. Sie können
SAVEPOINT savepoint_name;
ROLLBACK TO savepoint_name;
einen SAVEPOINT
vor dem Block, bis die Sie Rollback möchten erstellen verwenden. SAVEPOINT
benennt und markiert den aktuellen Punkt in der Verarbeitung einer Transaktion. Mit Sicherungspunkten können Sie einen Teil einer Transaktion anstelle der gesamten Transaktion zurücksetzen. Die Anzahl der aktiven Sicherungspunkte für jede Sitzung ist unbegrenzt.
Beispiel:
BEGIN
-- other DML statements
SAVEPOINT do_insert;
INSERT INTO emp_name VALUES (emp_id, emp_lastname, emp_salary);
EXCEPTION
WHEN DUP_VAL_ON_INDEX THEN
ROLLBACK TO do_insert;
DBMS_OUTPUT.PUT_LINE('Insert has been rolled back');
END;
- 1. Warum MVCC für DML-Anweisungen Sperren erfordert
- 2. Wenn Anweisungen in Tests
- 3. Wenn bedingte Anweisungen in Underscore.js
- 4. Warum können nicht alle Anweisungen in Java kommentiert werden?
- 5. Kann class_alias() rückgängig gemacht werden?
- 6. Stoppen und zurücksetzen, wenn eine der mehreren vorbereiteten Anweisungen fehlschlägt
- 7. Zurücksetzen der gesamten Prozedur (alle Anweisungen)
- 8. Wenn ... Else Anweisungen in Anführungszeichen
- 9. Wie können lokale Änderungen an einem ActiveSecord-Objekt rückgängig gemacht/rückgängig gemacht werden?
- 10. Wenn und andere Anweisungen in Python 3
- 11. SQL-Anweisungen in XML durch Abfrageergebnisse ersetzen
- 12. Verwendete Anweisungen in SQL
- 13. Wenn Anweisungen für Checkboxen
- 14. Ausführen von Azure SQL DML-Anweisungen aus Azure ML
- 15. Leistungsunterschiede von verschachtelten wenn Else-Anweisungen vs. ElseIf-Anweisungen
- 16. Wie können Änderungen an einem Modell rückgängig gemacht werden?
- 17. # if-Anweisungen in Lenker
- 18. Zeitkomplexität mit bedingten Anweisungen
- 19. Rückgängig einen Fehler gemacht, während die Commits in GIT Quetschen
- 20. String-Literale durch private const-Anweisungen ersetzen
- 21. Fehler rückgängig gemacht(): Liste ist nicht aufrufbar
- 22. Rückgängig gemacht Tab in Eclipse?
- 23. PHP-Anweisungen in JQuery
- 24. Bedingte php_flag-Anweisungen in .htaccess
- 25. Werden Anweisungen/Anweisungen zur Laufzeit oder zur Montagezeit ausgeführt?
- 26. Bedingte Formatierung wenn dann Anweisungen
- 27. Kombinieren von SET-Anweisungen mit normalen Anweisungen
- 28. Überspringen von Anweisungen in einem IfStatements
- 29. [] Klammern in SQL-Anweisungen
- 30. MUMPS $ Funktionen in SQL-Anweisungen