Einführung in PL/SQL
- Wozu PL/SQL – der Nutzen gegenüber reinem SQL
- Die Blockstruktur: DECLARE, BEGIN, EXCEPTION, END
- Anonyme Blöcke ausführen, Ausgabe mit DBMS_OUTPUT
- Werkzeuge: SQL Developer und die VS-Code-Erweiterung für Oracle
Variablen und Datentypen
- Variablen und Konstanten deklarieren
- Typsicher arbeiten mit %TYPE und %ROWTYPE
- Zusammengesetzte Typen: Records
- Gültigkeitsbereich und Sichtbarkeit
- Neu in der 23ai/26ai-Linie: BOOLEAN als echter SQL-Datentyp
SQL innerhalb von PL/SQL
- SELECT INTO sowie INSERT, UPDATE und DELETE im Block
- Implizite Cursor und ihre Attribute wie SQL%ROWCOUNT
- Transaktionssteuerung innerhalb von PL/SQL
- Sequenzen und SQL-Funktionen nutzen
Kontrollstrukturen
- IF, ELSIF und CASE
- Basic Loop, WHILE und FOR, verschachtelte Schleifen
- CONTINUE, EXIT WHEN und Schleifen-Labels
- Der Cursor-FOR-Loop als Standardmuster
Explizite Cursor und Collections
- Cursor deklarieren, öffnen, lesen und schliessen
- Cursor mit Parametern, FOR UPDATE und WHERE CURRENT OF
- Assoziative Arrays, Nested Tables und VARRAYs im Überblick
- Ausblick auf BULK COLLECT und FORALL
Fehlerbehandlung
- Vordefinierte und eigene Exceptions
- RAISE, RAISE_APPLICATION_ERROR und PRAGMA EXCEPTION_INIT
- SQLCODE, SQLERRM und FORMAT_ERROR_BACKTRACE
- Richtlinien für eine belastbare Fehlerbehandlung
Unterprogramme, Packages und Trigger
- Prozeduren und Funktionen, Parametermodi IN, OUT und IN OUT
- Modular entwickeln statt Codewiederholung
- Packages: Spezifikation und Body
- Trigger entwickeln und einsetzen
- Dynamisches SQL mit EXECUTE IMMEDIATE
Debugging, Abhängigkeiten und Ausblick
- Debuggen im SQL Developer
- Abhängigkeiten zwischen Objekten verstehen
- Grundlagen der Codeoptimierung
- Ausblick: SQL Firewall aus Entwicklersicht, DBMS_VECTOR und Select AI