Beschreibung:
Die SQL-Erweiterung PL/SQL der Oracle 10g/11g-Datenbank bietet eine umfangreiche Syntax für die Entwicklung von programmierbaren DB-Objekten wie Prozeduren/Funktionen und Triggern. So kann man vollständige datenbanknahe Anwendungen direkt in der Datenbank entwickeln und ihre Module in anderen Anwendungen, die in Java,.NET oder auch PHP geschrieben sind, wieder integrieren. Dieses Buch bietet Einsteigern einen umfassenden Überblick über die PL/SQL-Syntax und ihre Fähigkeiten.
1. Einführung 251. 1. Beispieldatenbank 251. 1. 1. Entitäten 251. 1. 2. Szenario 261. 1. 3. Tabellen und Beziehungen 301. 2. Einrichtung der Umgebung 321. 2. 1. Oracle Database 10g Express Edition 321. 2. 2. Entwicklungsumgebung 361. 3. Einrichtung der Beispiel-Datenbank 391. 3. 1. Dateien 391. 3. 2. Tabellen und Daten aufspielen 402. Einführung in PL/SQL 472. 1. Wozu überhaupt PL/SQL? 472. 1. 1. SQL- und PL/SQL-Variante eines Datenzugriffs 472. 1. 2. Architektur von PL/SQL-Anwendungen 502. 2. Die Struktur von PL/SQL 542. 2. 1. Schreibweise und Benennungskonventionen für Variablen 542. 2. 2. Blockstruktur 562. 2. 3. Einsatzbereiche von PL/SQL 582. 2. 4. Guter Programmierstil: Kommentare und Formatierungen 603. Grundlegende Syntaxvorstellung 693. 1. Basis-Syntax 693. 1. 1. Gültige Zeichenmenge 693. 1. 2. Literale 703. 2. Variablen 743. 2. 1. Deklaration 753. 2. 2. Verwendung von %TYPE 763. 2. 3. Vererbung von Datentypen 773. 2. 4. Gültigkeit und Sichtbarkeit 773. 3. Datentypen und Operatoren 813. 3. 1. Oracle- und PL/SQL-Datentypen 823. 3. 2. Subtypen – Eigene Datentypen 843. 3. 3. Automatische und explizite Typumwandlung 863. 3. 4. Operatoren 903. 4. Ausgabemöglichkeiten im Puffer und in Dateien 933. 4. 1. Puffer-Ausgaben mit DBMS_OUTPUT 933. 4. 2. Datei-Ausgaben mit UTL_FILE 983. 4. 3. Ausnahmen des UTL_FILE-Pakets 1063. 4. 4. Textformatierungen und Ersetzungen 1073. 5. Verzweigungen 1103. 5. 1. IF-Verzweigung 1113. 5. 2. IF-ELSE-Verzweigung 1123. 5. 3. IF-ELSIF-ELSE-Verzweigung 1133. 5. 4. CASE mit einzelnem Selektor 1143. 5. 5. Ausnahmen bei CASE 1153. 5. 6. Selektorlose CASE-Anweisung 1163. 5. 7. Programmmuster bei Verzweigungen 1173. 6. Schleifen 1183. 6. 1. LOOP – Einfache Schleife 1183. 6. 2. Schleifensteuerung mit EXIT und CONTINUE 1193. 6. 3. Verschachtelte Schleifenkonstruktionen mit Labeln 1203. 6. 4. WHILE-Schleife 1223. 6. 5. Numerische FOR-Schleife 1243. 7. Weitere Anweisungen 1263. 7. 1. GOTO-Strukturen mit Labeln 1263. 7. 2. NULL im Anweisungsabschnitt 1343. 8. Datensätze und %RECORD 1353. 9. Vorteile bei der Verwendung 1363. 9. 1. Definition eines Datensatztyps 1373. 9. 2. Verwendung von Datensätzen 1393. 9. 3. Datensatz-Erzeugung mit %ROWTYPE 1424. Transaktionssteuerung 1474. 1. SQL in PL/SQL 1474. 1. 1. Zulässigkeit von Anweisungen 1474. 1. 2. Dynamisches SQL 1484. 2. Kontextwechsel 1504. 2. 1. Grundprinzip 1514. 2. 2. Zugriffe über DB-Links 1544. 2. 3. Einsatz von Synonymen 1554. 2. 4. Aufruf von Pseudospalten 1564. 3. Steuerung von Transaktionen 1614. 3. 1. Grundproblem 1614. 3. 2. Bestätigen und zurücksetzen von Anweisungen 1634. 3. 3. Sicherungspunkte 1674. 3. 4. Transaktionen festlegen 1714. 3. 5. Tabellen sperren 1735. Cursor und Mengen 1795. 1. Prinzip von Cursorn 1795. 1. 1. Erzeugen und verarbeiten 1795. 1. 2. Cursor-Operationen 1815. 2. Explizite Cursor 1825. 2. 1. Deklaration 1825. 2. 2. Verarbeitung 1845. 2. 3. Cursor-Schleifen und Cursor-Attribute 1885. 2. 4. Parametrisierte Cursor und Wertzuweisungen 1935. 3. Implizite Cursor 1955. 3. 1. Definition 1955. 3. 2. Attribute 1975. 3. 3. Beispiel 1985. 3. 4. Zeilensperren im Cursor 2005. 4. Cursor-Variablen 2025. 4. 1. Deklaration 2025. 4. 2. Verarbeitung 2045. 5. Weitere Techniken 2095. 5. 1. Cursor-Ausdrücke 2095. 5. 2. Cursor-Ausnahmen 2126. Fehler und Ausnahmen 2176. 1. Einführung 2176. 1. 1. Typologie von Ausnahmen 2176. 1. 2. Allgemeine Funktionsweise von Ausnahmen 2186. 1. 3. Vordefinierte Ausnahmen 2216. 2. Selbst definierte Ausnahmen 2236. 2. 1. Deklaration und Verwendung 2236. 2. 2. Fehlermeldungen und Fehlerwerte 2256. 2. 3. Fehler und Ausnahmen in verschachtelten Blöcken 2286. 2. 4. Verschachtelte Blöcke und besondere Ausnahmen 2316. 2. 5. Verwendung von Ausnahmen bei Schleifen und Blöcken 2347. Collections und ihre Verarbeitung 2437. 1. Collections 2437. 1. 1. Typen 2437. 1. 2. Assoziative Arrays (Index-By-Tabellen) 2447. 1. 3. Verschachtelte Tabellen (Nested Tables) 2477. 1. 4. Varrays 2507. 1. 5. Multidimensionale Strukturen 2517. 1. 6. Collection-Methoden 2617. 1. 7. Ausnahmen und Collections 2687. 2. Mengenbindung und Mengenverarbeitung 2687. 2. 1. Bindungstypen 2697. 2. 2. Leistungsunterschiede im Vergleich 2707. 2. 3. Mengenübertragung mit FORALL 2717. 2. 4. Verwendung von Cursor-Attributen 2747. 2. 5. Ausnahmebehandlung bei der Mengenbindung 2777. 2. 6. Mengenabfrage mit BULK COLLECT 2807. 2. 7. Einsatz von RETURNING 2848. Dynamisches SQL 2918. 1. Einführung 2918. 1. 1. Grundproblem 2918. 1. 2. Verwendungszweck und Einsatzbereiche 2938. 2. SQL-Befehle mit EXECUTE IMMEDIATE ausführen 2938. 2. 1. Allgemeine Syntax 2948. 2. 2. Beispiel 2958. 3. Dynamisches SQL im Kontext 3028. 3. 1. Verwendung von Cursor-Variablen 3028. 3. 2. Mengenverarbeitung 3058. 3. 3. Beispiele 3079. Prozeduren und Funktionen 3159. 1. Modulare Strukturen in PL/SQL 3159. 1. 1. Typen von Modulen in PL/SQL 3159. 1. 2. Parameter und Parameter-Modi 3189. 1. 3. Fehlersuche und Korrektur 3259. 2. Funktionen und Prozeduren erstellen 3329. 2. 1. Allgemeine Syntax für Funktionen 3329. 2. 2. Blockstruktur von Funktionen 3349. 2. 3. Entscheidungen für Parameter-Modi 3399. 2. 4. Ausnahmebehandlung 3439. 2. 5. Übergabe von Werten bei IN und IN OUT 3469. 2. 6. Rückgaben mit RETURN 3489. 2. 7. PL/SQL-Funktionen in SQL 3549. 3. Eigene Prozeduren verwenden 3659. 3. 1. Die allgemeine Syntax von Prozeduren 3659. 3. 2. Blockstruktur von Prozeduren 3679. 3. 3. Speicherort von Prozeduren 3699. 3. 4. Wahl der Parameter-Modi und Wertübergabe 3709. 3. 5. Ausnahmebehandlung für Prozeduren 3759. 3. 6. Übergabe per Referenz und Wert 3789. 4. Modul-Spezialitäten 3799. 4. 1. Überladen von Modulen 3799. 4. 2. Vorwärtsdeklaration und Rekursion 3839. 4. 3. Einsatz von lokalen Modulen 38910. Pakete 39910. 1. Einführung 39910. 1. 1. Definition und Strukturen 39910. 1. 2. Vorteile durch die Verwendung von Paketen 40010. 1. 3. Aufbau von Paketen 40110. 1. 4. Sichtbarkeit und Gültigkeit 40410. 2. Eigene Pakete 40610. 2. 1. Ein Beispielpaket 40610. 2. 2. Speicherort von Paketen und ihre Bearbeitung 40910. 2. 3. Abhängigkeiten zwischen Körpern und Spezifikationen 41010. 2. 4. Aufruf von Paketen 41310. 2. 5. Öffentliche und private Elemente 41510. 2. 6. Berechtigungskonzepte bei gespeicherten Unterprogrammen 41710. 2. 7. Beispiel-Programm: Testdaten-Erzeugung 42210. 2. 8. Quelltextschutz und Verschlüsselung 44810. 3. Eingebaute PL/SQL-Pakete 45110. 3. 1. Systemüberwachung mit DBMS_UTILITY 45210. 3. 2. Große Objekte mit DBMS_LOB bearbeiten 45710. 3. 3. Zugriff auf den Shared Pool 46810. 3. 4. Nachrichtenaustausch über Pipes 47010. 3. 5. Datenaustausch via Alarme 47410. 3. 6. Anwendungsoptimierung und -analysevon PL/SQL-Programmen 47711. Trigger 50111. 1. Einführung 50111. 1. 1. Typologie 50211. 1. 2. Einsatzbereiche 50311. 1. 3. Einschränkungen 50411. 2. Trigger programmieren 50511. 2. 1. Allgemeine Trigger-Befehle 50611. 2. 2. DML-Trigger 50611. 2. 3. Syntax-Erweiterungen von Triggern 51011. 2. 4. Instead-of-Trigger 51811. 2. 5. System-Trigger 525