Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

Oracle PL/SQL Grundkurs

Transaktionen steuern

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Verfolgen Sie hier die Auswirkung der Transaktionsbehandlung in einem PL/SQL-Programm. Dabei stellt das Video auch das PRAGMA AUTONOMOUS_TRANSACTION vor und Sie lernen, dafür zu sorgen, dass Datenbankzugriffe in eigenen Transaktionen ausgeführt werden.

Transkript

Wenn ein Benutzer ein PL/SQL-Programm ausführt, sind seine Änderungen in der Datenbank für ihn sofort sichtbar. Das bedeutet aber nicht, dass sie auch endgültig gespeichert sind. Denn SQL Plus sammelt die SQL-Anweisungen zunächst in einer sogenannten Transaktion. Erst die Bestätigung mit dem Kommando COMMIT sorgt dafür, dass alle SQL Anweisungs- Tansaktionen persistiert werden. Ich musste jetzt commit schreiben, ein Semikolon dahinter setzen und das Ganze bestätigen mit Enter und dann werden sie dauerhaft gespeichert. Wenn ich die Änderungen nicht haben will, kann ich mit einem Rollback dafür sorgen, dass die Änderungen wieder rückgängig gemacht werden und zwar auf diese Weise: rollback Jetzt sind sie wieder weg. Grundsätzlich kann dieses Verhalten in der SQL-Befehlszeile über die Systemvariable autocommit auch geändert werden. Wir schauen uns hier zu nun über show_autocommit die Voreinstellung an. show_autocommit So und AUTOCOMMIT ist abgeschaltet. Ob Groß- oder Kleinschreibung spielt natürlich keine Rolle. Wichtig ist aber hierbei, dass wir hier nun ein Problem haben, denn die Änderungen unserer PL/SQL-Programme hierdurch, die werden wieder zurückgenommen. Eine Möglichkeit wäre nun, die Systemvariable autocommit auf on zu setzen über set autocommit on. Dadurch würde jeder einzelne SQL-Anweisung direkt nach der Ausführung automatisch bestätigt werden. Wir können aber auch einen anderen Weg gehen und zwar können wir auch innerhalb des PL/SQL-Programms den COMMIT ausführen. Ich nehme das jetzt hier wieder zurück und zwar schauen wir uns jetzt im PL/SQL-Programm an, was das zur Folge hätte. Ich führe also wieder den EDIT aus edit kap05_benutzer_speichern und ich öffne die Datei nochmal. Damit unser INSERT dauerhaft in der Tabelle gespeichert bleibt, füge ich einfach hinter meinem INSERT das Kommando COMMIT hinzu. Hier. Außerdem werde ich dafür sorgen, dass im Fehlerfall die Änderungen zurückgenommen werden. Hier versetze ich einen SAFEPOINT vor den INSERT. Also, dort. Ich nenne den SAFEPOINT mal safepoint_1. Und dann definiere ich einen Ausnahmebehandlungsabschnitt und füge dort ein ROLLBACK hinzu. Also, hier drunter. EXCEPTION In diesem Schlüsselwort leite ich meinen Ausnahmebehandlungsabschnitt ein und jetzt schreibe ich dort hinein WHEN OTHERS THEN und im Fehlerfall, soll ein ROLLBACK zum SAFEPOINT_1 durchgeführt werden. Also ROLLBACK TO safepoint_1. Aber dies könnte eine fatale Auswirkung haben. Weil man PL/SQL-Programme beim Aufruf die übergeordnete Transaktion, das heißt, die Transaktion des aufrufenden Prozesses gleich mitnutzt. Wenn dort aber Anweisungen ausgeführt worden sind, die fehlerhaft sind, würden wir an dieser Stelle ungewollt, diese gleich mitbestätigen. Und zwar genau an dieser Stelle. Aus diesem Grund wird das PRAGMA AUTONOMOUS_TRANSACTION zur Verfügung gestellt. Wenn ich dieses Pragma im Deklarationsblock reinschreibe, werden meine Änderungsanweisungen in dem PL/SQL-Programm in einer eigenen autonomen Transaktion ausgeführt. Ich schreibe es also hinein und zwar genau dort. PRAGMA und dann AUTONOMOUS_ TRANSACTION Jetzt speichere ich das Programm erneut ab und schließe Notepad++ wieder. Und erzeuge mein kap05_benutzer_speichern erneut. Also ich starte kap05_benutzer_speichern, dadurch wird meine Procedure wieder erneut erzeugt. Und jetzt kann ich hingehen und sagen execute benutzer_speichern Alex 1,78 und dies ist eine dauerhafte Speicherung meiner Benutzerdaten. In diesem Video habe ich Ihnen die Auswirkung der Transaktionsbehandlung in einem PL/SQL-Programm gezeigt. Und Ihnen das PRAGMA AUTONOMOUS_TRANSACTION vorgestellt. Dabei haben Sie gelernt, wie Sie dafür sorgen können, dass Ihre Datenbankzugriffe in eigenen Transaktionen ausgeführt werden können.

Oracle PL/SQL Grundkurs

Entdecken Sie grundlegende Programmstrukuren, Stored Procedures und Functions in PL/SQL und sehen Sie, wie Sie auf Daten zugreifen können.

3 Std. 58 min (32 Videos)
Derzeit sind keine Feedbacks vorhanden...
 

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!