Oracle PL/SQL Marco Skulschus Marcus Wiederstein

Ähnliche Dokumente
Oracle PL/SQL Marco Skulschus Marcus Wiederstein

2 Anlegen und Konfigurieren von Datenbanken 35

MS SQL Server Einstieg in relationale Datenbanken und SQL Marco Skulschus Marcus Wiederstein

Oracle SQL. Marco Skulschus Marcus Wiederstein

Oracle PL/SQL und XML. Marco Skulschus Marcus Wiederstein

XSLT, XPath und XQuery Marco Skulschus Marcus Wiederstein Sarah Winterstone

Oracle Datenbankprogrammierung mit PL/SQL Grundlagen

Oracle PL/SQL Objekte und objektrelationale Techniken. Marco Skulschus Marcus Wiederstein

Oracle Datenbankprogrammierung mit PL/SQL Aufbau

Oracle PL/SQL und Datenbankprogrammierung - LVC

Oracle Database 10g PL/SQL Programmierung

Inhaltsverzeichnis. Inhalt. 1 Einführung in die Datenbanktechnologie

O REILLY. Oracle PL/SQL Programmierung Paris - - Steven Feuerstein. mit Bill Pribyl. Deutsche Übersetzung von Dorothea Reder 2.

Richtig einsteigen: Access 2007 VBA-Programmierung

Richtig einsteigen: Access 2010 VBA-Programmierung

Oracle Database 10g PL/SQL Programmierung

Zusammengesetzte Datentypen

XSL-FO PDF Marco Skulschus Marcus Wiederstein

Oracle Database 11g: PL/SQL-Grundlagen

Berichte aus der Informatik. Dieter Pawelczak. Start in die C-Programmierung

Sprechen Sie Java? Hanspeter Mössenböck. Tm\ dpunkt.verlag. Eine Einführung in das systematische Programmieren

Programmierung von verteilten Systemen und Webanwendungen mit Java EE

Funktionen. Überblick über Stored Functions. Syntax zum Schreiben einer Funktion. Schreiben einer Funktion

CARL HANSER VERLAG. Christopher Allen. Oracle PL/SQL für Einsteiger Der Einsatz von SQL und PL/SQL in der Oracle-Datenbank

MS SQL Server Einstieg in relationale Datenbanken und SQL Marco Skulschus Marcus Wiederstein

Auf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort... 13

Auf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort 13

Programmieren in Lua

Lorenz Hölscher. Richtig einsteigen: Access 2010 VBA-Programmierung

magnum C++ WALTER SAUMWEBER kompakt komplett kompetent

Grundkurs Programmieren in Java Band 1: Der Einstieg in Programmierung und Objektorientierung

Grundkurs Programmieren in Java

Inhaltsverzeichnis. Teil I Erste Schritte. 1 Einleitung Teil II Grundlagen von VBA. 2 Die ersten VBA-Prozeduren erstellen...

Inhaltsverzeichnis. Kurseinheit 1. Kurseinheit 2

Thomas Binzinger. Jetzt lerne ich. Delphi. Markt+Technik Verlag

Inhaltsverzeichnis 1 Der objektorientierte Ansatz 2 Elementare Objekte und Ausdrücke

Inhalt. 1 Einstieg in die Welt von C Erste Schritte in C 31. Vorwort... 15

Lorenz Hölscher. Richtig einsteigen: Access 2013 VBA-Programmierung. Von den Grundlagen bis zur professionellen Entwicklung. Microsott.

Prozedurale Datenbank- Anwendungsprogrammierung

Peter Prinz Ulla Kirch-Prinz C+ + Lernen und professionell anwenden. ffl mitp

Inhaltsverzeichnis. Vorwort Teil I Einführung. 1 Einleitung Der Microsoft SQL Server... 19

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

Grundkurs Programmieren in Java

Inhaltsverzeichnis. Vorwort Kapitel 1 Einleitung... 15

Einführung in den Einsatz von Objekt-Orientierung mit C++ I

1.1 In diesem Kapitel Ein wenig C-Geschichte Warum in C programmieren? Die Struktur dieses Buches 19

Inhaltsverzeichnis. Vorwort 13. Kapitel 1 Einleitung 15

Inhaltsverzeichnis. Vorwort.11

Sprachkonstrukte. Einführung in Java. Folie 1 von Mai Ivo Kronenberg

Kapitel 9. Embedded SQL. Prof. Dr. Wolfgang Weber Vorlesung Datenbanken 1

Datenbankprogrammierung mit MySQL 5 und PHP 5 Spona

Gesicherte Prozeduren

jetzt lerne ich PHP 5 & MySQL 4.1 Der schnelle Einstieg in die objektorientierte

C für Java-Programmierer

Inhaltsverzeichnis. Kapitel i: Schnelleinstieg 13. Kapitel 2: Was sind Programme? 17. Kapitel 3: Wie erstellt man eigene Programme?

Grundkurs Programmieren in Java

Web-Techniken Einführung in JavaScript

Matthias-Claudius-Gymnasium Fachcurriculum Informatik

mit Access herangeführt.

Collections in PL/SQL

Dynamisches SQL. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java

JavaScript O'REILLY. Das umfassende Referenzwerk. Deutsche Übersetzung von Ralf Kuhnert, Gisbert W. Selke & Harald Selke

Prozedurale SQL-Erweiterungen

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

Vorwort. Aufbau und Struktur

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen

Inhaltsverzeichnis. Teil I Erste Schritte. 1 Einleitung Visual Basic 2010 Express installieren Teil II Grundlagen von Visual Basic

Einführung in SQL Datenbanken bearbeiten

Inhaltsverzeichnis. 1 Grundlagen 1. 2 Einfache Programme 21

Vorbereitungen zum 3. Praktikum (PL/SQL):

VBA-Programmierung: Zusammenfassung

Explizite Cursor. Cursor. Steuerung des expliziten Cursors. Explizite Cursor Funktionen

2 Wegweiser Projektbeschreibung...69

Inhaltsverzeichnis. 1 Hallo 13

Vor- und Nachteile speicheroptimierter Tabellen

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R Vorlesung #6. SQL (Teil 4)

Wilhelm Haager. Computeralgebra. mit Maxima. Grundlagen der Anwendung und Programmierung. Fachbuchverlag Leipzig. im Carl Hanser Verlag

P. P. Bothner W.-M. Kähler. Einführung in die Programmiersprache APL

Kontrollstrukturen MySQL Funktionen. MySQL 4, 5. Kapitel 20a: PHP Teil 2. Marcel Noe

1. Referenzdatentypen: Felder und Strings. Referenz- vs. einfache Datentypen. Rückblick: Einfache Datentypen (1) 4711 r

1. Referenzdatentypen: Felder und Strings

Objektorientiert in C++

Powerful PL/SQL: Collections indizieren mit VARCHAR2- Indizes ein Praxisbeispiel

Arbeit mit zusammengesetzten Datentypen

Hans-Georg Schumann. Visual Basic Inklusive DVD-ROM

Objektorientierte Programmierung Studiengang Medieninformatik

Transkript:

www.comelio-medien.com Oracle PL/SQL Marco Skulschus Marcus Wiederstein

Oracle PL/SQL Marco Skulschus Marcus Wiederstein

Oracle PL/SQL Marco Skulschus Marcus Wiederstein Webseite zum Buch: www.comelio-medien.com/buch-katalog/oracle/oracle_pl_sql Comelio Medien 2010

Alle Rechte vorbehalten. Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Jeder Verwertung außerhalb der engen Grenzen des Urheberrechtsgesetzes ist ohne Zustimmung des Verlages unzulässig und strafbar. Das gilt insbesondere für die Vervielfältigung, Übersetzung, Mikroverfilmung und die Einspeicherung und Verbreitung in elektronischen Systemen. Comelio GmbH Comelio GmbH Goethestr. 34 D-13086 Berlin Fon: +49 (0) 30-8 14 56 22-00 Fax: +49 (0) 30-8 14 56 22-10 www.comelio-medien.com info@comelio.com Covergestaltung, Comelio-Grafiken, Layout & Satz: Nadine Kilian ISBN 978-3-939701-46-0

Inhaltsverzeichnis 1. Einführung 20 1. 1. Beispieldatenbank 20 1. 1. 1. Entitäten 20 1. 1. 2. Szenario 21 1. 1. 3. Tabellen und Beziehungen 25 1. 2. Einrichtung der Umgebung 27 1. 2. 1. Oracle Database 10g Express Edition 27 1. 2. 2. Entwicklungsumgebung 31 1. 3. Einrichtung der Beispiel-Datenbank 34 1. 3. 1. Dateien 34 1. 3. 2. Tabellen und Daten aufspielen 35 2. Einführung in PL/SQL 39 2. 1. Wozu überhaupt PL/SQL? 39 2. 1. 1. SQL- und PL/SQL-Variante eines Datenzugriffs 39 2. 1. 2. Architektur von PL/SQL-Anwendungen 42 2. 2. Die Struktur von PL/SQL 46 2. 2. 1. Schreibweise und Benennungskonventionen für Variablen 46 2. 2. 2. Blockstruktur 48 2. 2. 3. Einsatzbereiche von PL/SQL 50 2. 2. 4. Guter Programmierstil: Kommentare und Formatierungen 52 3. Grundlegende Syntaxvorstellung 58 3. 1. Basis-Syntax 58 3. 1. 1. Gültige Zeichenmenge 58 3. 1. 2. Literale 59 3. 2. Variablen 63 3. 2. 1. Deklaration 64 3. 2. 2. Verwendung von %TYPE 65 6

3. 2. 3. Vererbung von Datentypen 66 3. 2. 4. Gültigkeit und Sichtbarkeit 66 3. 3. Datentypen und Operatoren 70 3. 3. 1. Oracle- und PL/SQL-Datentypen 71 3. 3. 2. Subtypen Eigene Datentypen 73 3. 3. 3. Automatische und explizite Typumwandlung 75 3. 3. 4. Operatoren 79 3. 4. Ausgabemöglichkeiten im Puffer und in Dateien 82 3. 4. 1. Puffer-Ausgaben mit DBMS_OUTPUT 82 3. 4. 2. Datei-Ausgaben mit UTL_FILE 87 3. 4. 3. Ausnahmen des UTL_FILE-Pakets 95 3. 4. 4. Textformatierungen und Ersetzungen 96 3. 5. Verzweigungen 99 3. 5. 1. IF-Verzweigung 100 3. 5. 2. IF-ELSE-Verzweigung 101 3. 5. 3. IF-ELSIF-ELSE-Verzweigung 102 3. 5. 4. CASE mit einzelnem Selektor 103 3. 5. 5. Ausnahmen bei CASE 104 3. 5. 6. Selektorlose CASE-Anweisung 105 3. 5. 7. Programmmuster bei Verzweigungen 106 3. 6. Schleifen 107 3. 6. 1. LOOP Einfache Schleife 107 3. 6. 2. Schleifensteuerung mit EXIT und CONTINUE 108 3. 6. 3. Verschachtelte Schleifenkonstruktionen mit Labeln 109 3. 6. 4. WHILE-Schleife 111 3. 6. 5. Numerische FOR-Schleife 113 3. 7. Weitere Anweisungen 115 3. 7. 1. GOTO-Strukturen mit Labeln 115 3. 7. 2. NULL im Anweisungsabschnitt 123 3. 8. Datensätze und %RECORD 124 3. 9. Vorteile bei der Verwendung 125 3. 9. 1. Definition eines Datensatztyps 126 3. 9. 2. Verwendung von Datensätzen 128 3. 9. 3. Datensatz-Erzeugung mit %ROWTYPE 131 4. Transaktionssteuerung 134 4. 1. SQL in PL/SQL 134 4. 1. 1. Zulässigkeit von Anweisungen 134 7

4. 1. 2. Dynamisches SQL 135 4. 2. Kontextwechsel 137 4. 2. 1. Grundprinzip 138 4. 2. 2. Zugriffe über DB-Links 141 4. 2. 3. Einsatz von Synonymen 142 4. 2. 4. Aufruf von Pseudospalten 143 4. 3. Steuerung von Transaktionen 148 4. 3. 1. Grundproblem 148 4. 3. 2. Bestätigen und zurücksetzen von Anweisungen 150 4. 3. 3. Sicherungspunkte 154 4. 3. 4. Transaktionen festlegen 158 4. 3. 5. Tabellen sperren 160 5. Cursor und Mengen 164 5. 1. Prinzip von Cursorn 164 5. 1. 1. Erzeugen und verarbeiten 164 5. 1. 2. Cursor-Operationen 166 5. 2. Explizite Cursor 167 5. 2. 1. Deklaration 167 5. 2. 2. Verarbeitung 169 5. 2. 3. Cursor-Schleifen und Cursor-Attribute 173 5. 2. 4. Parametrisierte Cursor und Wertzuweisungen 178 5. 3. Implizite Cursor 180 5. 3. 1. Definition 180 5. 3. 2. Attribute 182 5. 3. 3. Beispiel 183 5. 3. 4. Zeilensperren im Cursor 185 5. 4. Cursor-Variablen 187 5. 4. 1. Deklaration 187 5. 4. 2. Verarbeitung 189 5. 5. Weitere Techniken 194 5. 5. 1. Cursor-Ausdrücke 194 5. 5. 2. Cursor-Ausnahmen 197 6. Fehler und Ausnahmen 199 6. 1. Einführung 199 6. 1. 1. Typologie von Ausnahmen 199 6. 1. 2. Allgemeine Funktionsweise von Ausnahmen 200 8

6. 1. 3. Vordefinierte Ausnahmen 203 6. 2. Selbst definierte Ausnahmen 205 6. 2. 1. Deklaration und Verwendung 205 6. 2. 2. Fehlermeldungen und Fehlerwerte 207 6. 2. 3. Fehler und Ausnahmen in verschachtelten Blöcken 210 6. 2. 4. Verschachtelte Blöcke und besondere Ausnahmen 213 6. 2. 5. Verwendung von Ausnahmen bei Schleifen und Blöcken 216 7. Collections und ihre Verarbeitung 222 7. 1. Collections 222 7. 1. 1. Typen 222 7. 1. 2. Assoziative Arrays (Index-By-Tabellen) 223 7. 1. 3. Verschachtelte Tabellen (Nested Tables) 226 7. 1. 4. Varrays 229 7. 1. 5. Multidimensionale Strukturen 230 7. 1. 6. Collection-Methoden 240 7. 1. 7. Ausnahmen und Collections 247 7. 2. Mengenbindung und Mengenverarbeitung 247 7. 2. 1. Bindungstypen 248 7. 2. 2. Leistungsunterschiede im Vergleich 249 7. 2. 3. Mengenübertragung mit FORALL 250 7. 2. 4. Verwendung von Cursor-Attributen 253 7. 2. 5. Ausnahmebehandlung bei der Mengenbindung 256 7. 2. 6. Mengenabfrage mit BULK COLLECT 259 7. 2. 7. Einsatz von RETURNING 263 8. Dynamisches SQL 268 8. 1. Einführung 268 8. 1. 1. Grundproblem 268 8. 1. 2. Verwendungszweck und Einsatzbereiche 270 8. 2. SQL-Befehle mit EXECUTE IMMEDIATE ausführen 270 8. 2. 1. Allgemeine Syntax 271 8. 2. 2. Beispiel 272 8. 3. Dynamisches SQL im Kontext 279 8. 3. 1. Verwendung von Cursor-Variablen 279 8. 3. 2. Mengenverarbeitung 282 8. 3. 3. Beispiele 284 9

9. Prozeduren und Funktionen 290 9. 1. Modulare Strukturen in PL/SQL 290 9. 1. 1. Typen von Modulen in PL/SQL 290 9. 1. 2. Parameter und Parameter-Modi 293 9. 1. 3. Fehlersuche und Korrektur 300 9. 2. Funktionen und Prozeduren erstellen 307 9. 2. 1. Allgemeine Syntax für Funktionen 307 9. 2. 2. Blockstruktur von Funktionen 309 9. 2. 3. Entscheidungen für Parameter-Modi 314 9. 2. 4. Ausnahmebehandlung 318 9. 2. 5. Übergabe von Werten bei IN und IN OUT 321 9. 2. 6. Rückgaben mit RETURN 323 9. 2. 7. PL/SQL-Funktionen in SQL 329 9. 3. Eigene Prozeduren verwenden 340 9. 3. 1. Die allgemeine Syntax von Prozeduren 340 9. 3. 2. Blockstruktur von Prozeduren 342 9. 3. 3. Speicherort von Prozeduren 344 9. 3. 4. Wahl der Parameter-Modi und Wertübergabe 345 9. 3. 5. Ausnahmebehandlung für Prozeduren 350 9. 3. 6. Übergabe per Referenz und Wert 353 9. 4. Modul-Spezialitäten 354 9. 4. 1. Überladen von Modulen 354 9. 4. 2. Vorwärtsdeklaration und Rekursion 358 9. 4. 3. Einsatz von lokalen Modulen 364 10. Pakete 371 10. 1. Einführung 371 10. 1. 1. Definition und Strukturen 371 10. 1. 2. Vorteile durch die Verwendung von Paketen 372 10. 1. 3. Aufbau von Paketen 373 10. 1. 4. Sichtbarkeit und Gültigkeit 376 10. 2. Eigene Pakete 378 10. 2. 1. Ein Beispielpaket 378 10. 2. 2. Speicherort von Paketen und ihre Bearbeitung 381 10. 2. 3. Abhängigkeiten zwischen Körpern und Spezifikationen 382 10. 2. 4. Aufruf von Paketen 385 10. 2. 5. Öffentliche und private Elemente 387 10. 2. 6. Berechtigungskonzepte bei gespeicherten Unterprogrammen 389 10

10. 2. 7. Beispiel-Programm: Testdaten-Erzeugung 394 10. 2. 8. Quelltextschutz und Verschlüsselung 420 10. 3. Eingebaute PL/SQL-Pakete 423 10. 3. 1. Systemüberwachung mit DBMS_UTILITY 424 10. 3. 2. Große Objekte mit DBMS_LOB bearbeiten 429 10. 3. 3. Zugriff auf den Shared Pool 440 10. 3. 4. Nachrichtenaustausch über Pipes 442 10. 3. 5. Datenaustausch via Alarme 446 10. 3. 6. Anwendungsoptimierung und -analyse von PL/SQL-Programmen 449 11. Trigger 470 11. 1. Einführung 470 11. 1. 1. Typologie 471 11. 1. 2. Einsatzbereiche 472 11. 1. 3. Einschränkungen 473 11. 2. Trigger programmieren 474 11. 2. 1. Allgemeine Trigger-Befehle 475 11. 2. 2. DML-Trigger 475 11. 2. 3. Syntax-Erweiterungen von Triggern 479 11. 2. 4. Instead-of-Trigger 487 11. 2. 5. System-Trigger 494 11