Oracle Datenbankprogrammierung mit PL/SQL Aufbau

Ähnliche Dokumente
Oracle PL/SQL für Experten - Performance Analyse und Laufzeitoptimierung

Oracle Datenbankprogrammierung mit PL/SQL Grundlagen

IBM Informix SQL. Seminarunterlage. Version vom

IBM DB2 für Linux/Unix/Windows Monitoring und Tuning

IBM DB2 UNIX/Linux/Windows Backup und Hochverfügbarkeit mit HADR

Einführung in die objektorientierte Programmierung

Unix/Linux Grundlagen für Einsteiger

IBM DB2 für Unix/Linux/Windows SQL Grundlagen

Oracle AWR und ASH Analyse und Interpretation

Inhaltsverzeichnis. Inhalt. 1 Einführung in die Datenbanktechnologie

Apache HTTP Server Administration

JSP und Servlet Programmierung

Solaris Virtualisierung mit ZFS und Container (Zonen)

IBM Informix Tuning und Monitoring

MySQL Administration. Seminarunterlage. Version 3.02 vom

Oracle Backup und Recovery

Linux Cluster mit Pacemaker und Heartbeat 3

Oracle Cloud Control. Seminarunterlage. Version vom

Java Performance Tuning

Oracle Database 10g PL/SQL Programmierung

PHP Programmierung. Seminarunterlage. Version 1.02 vom

Oracle Backup und Recovery mit RMAN

Linux Hochverfügbarkeits-Cluster

Java GUI Entwicklung mit Swing

2 Anlegen und Konfigurieren von Datenbanken 35

Linux Hochverfügbarkeits-Cluster

Oracle Datenbankadministration Grundlagen

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

Tomcat Konfiguration und Administration

Big Data Informationen neu gelebt

Oracle Capacity Planning

WebSphere Application Server Installation

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

Oracle PL/SQL und Datenbankprogrammierung - LVC

WildFly Application Server Administration

Zusammengesetzte Datentypen

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

Oracle Weblogic Administration Grundlagen

IBM Informix Dynamic Server Hochverfügbarkeits-Technologien unter Unix

Oracle Database 10g PL/SQL Programmierung

SQL (Structured Query Language) Schemata Datentypen

Oracle 12c: Neuerungen in PL/SQL. Roman Pyro DOAG 2014 Konferenz

Einführung in SQL. 1. Grundlagen SQL. Structured Query Language. Viele Dialekte. Unterteilung: i. DDL (Data Definition Language)

Oracle Virtual Private Database

Solaris 11 Systemadministration Grundlagen

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

Inhaltsverzeichnis. Einleitung

Inhaltsverzeichnis. Vorwort Kapitel 1 Einleitung... 15

Richtig einsteigen: Access 2007 VBA-Programmierung

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

SQL and PL/SQL unleashed. Neuheiten bei Oracle 11g und Oracle 12c im Bereich SQL und PL/SQL

IT-Projektcontrolling

Inhaltsverzeichnis. Vorwort 13. Kapitel 1 Einleitung 15

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

Abfragen (Queries, Subqueries)

Übung PL/SQL Trigger Lösungen

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

Datenbanken II Speicherung und Verarbeitung großer Objekte (Large Objects [LOBs])

Arbeit mit zusammengesetzten Datentypen

MCSA: SQL 2016 Database Development

ANDREAS PROUZA. Wien,

Collections in PL/SQL

Oracle9i Designer. Rainer Willems. Page 1. Leitender Systemberater Server Technology Competence Center Frankfurt Oracle Deutschland GmbH

Apache HTTP Server Administration

Objekt-relationales Datenbanksystem Oracle

einfach. gut. beraten. Stabilisierung von Ausführungsplänen Baselines DOAG Konferenz + Ausstellung 2017 Nürnberg Klaus Reimers

Neue Features Oracle Database 12.2 Wann denn endlich?

Vergessene (?) SQL- und PL/SQL- Funktionen

Richtig einsteigen: Access 2010 VBA-Programmierung

Unternehmensdatenbanken

Einführung in SQL Datenbanken bearbeiten

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

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

Heide Faeskorn-Woyke Birgit Bertelsmeier. Datenbanksysteme. Theorie und Praxis mit SQL2003, Oracle und MySQL

Themen des Kapitels. 2 Grundlagen von PL/SQL. PL/SQL Blöcke Kommentare Bezeichner Variablen Operatoren. 2.1 Übersicht. Grundelemente von PL/SQL.

Funktion definieren Gibt Summe der Gehälter zurück. Aufruf in einem SQL-Statement

Data Warehouse Grundlagen

Microsoft SQL Server 2000 Programmierung

1.1 Datenbanken Tabellen SQL und die Befehlseingabe Beispieldatenbank 36

Praktische Anwendungsentwicklung mit Oracle Forms

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

Erzeugung und Veränderung von Tabellen

jetzt lerne ich ASP.NET Dynamische Webseiten mit ASP.NET 1.1 mit Ausblick auf ASP 2.0 WENZ KORDWIG TRENNHAUS

Performante Verarbeitung großer Datenbanken am praktischem Beispiel

Oracle Database 1Og PL/SQL- Programmierung

Oracle Database 11g: PL/SQL-Grundlagen

Kapitel 10. JDBC und SQLJ. Prof. Dr. Wolfgang Weber Vorlesung Datenbanken 1

XML in der Oracle Datenbank "relational and beyond"

Vorwort 11. Eine neue Datenbank erstellen 79;

Inhaltsverzeichnis. 1 Der SQL Server 2008 stellt sich vor Die grafischen Tools des SQL Server Eine neue Datenbank erstellen 87

Professioneller Einstieg in Oracle Database 11g SQL

Inhaltsverzeichnis. Vorwort... 11

Gesicherte Prozeduren

Java Web Services. Seminarunterlage. Version 4.03 vom

Isolationsstufen für Transaktionen. Dr. Karsten Tolle

Vor- und Nachteile speicheroptimierter Tabellen

Transaktionen in Praxis. Dr. Karsten Tolle Vorl

Transkript:

Oracle Datenbankprogrammierung mit PL/SQL Aufbau Seminarunterlage Version: 12.07 Version 12.07 vom 6. Januar 2017

Dieses Dokument wird durch die veröffentlicht.. Alle Rechte vorbehalten. Alle Produkt- und Dienstleistungs-Bezeichnungen sind Warenzeichen oder eingetragene Warenzeichen der jeweiligen Firmen und beziehen sich auf Eintragungen in den USA oder USA-Warenzeichen. Weitere Logos und Produkt- oder Handelsnamen sind eingetragene Warenzeichen oder Warenzeichen der jeweiligen Unternehmen. Kein Teil dieser Dokumentation darf ohne vorherige schriftliche Genehmigung der weitergegeben oder benutzt werden. Die besitzt folgende Geschäftsstellen Adressen der Karl-Schurz-Str. 19a D-33100 Paderborn Tel.: (+49) 0 52 51 / 10 63-0 An der alten Ziegelei 5 D-48157 Münster Tel.: (+49) 02 51 / 9 24 35 00 Welser Straße 9 D-86368 Gersthofen Tel.: (+49) 08 21 / 507 492 0 Kreuzberger Ring 13 D-65205 Wiesbaden Tel.: (+49) 06 11 / 7 78 40 00 Wikingerstraße 18-20 D-51107 Köln Tel.: (+49) 02 21 / 8 70 61 0 Internet: http://www.ordix.de Email: seminare@ordix.de Seite 2 Version: 12.07

Inhaltsverzeichnis 1 Designkonstrukte... 7 1.1 Design mit Cursorn... 8 1.1.1 Record Variable... 8 1.1.2 Parameter... 9 1.1.3 Referenzierung von impliziten Cursorn... 10 1.1.4 Cursor FOR Schleifen... 11 1.1.5 Verwendung von Spalten Aliasnamen... 12 1.1.6 FOR UPDATE- und CURRENT OF Klausel... 13 1.2 Design mit Cursor Variablen... 14 1.2.1 Definition von Cursor Variablen... 14 1.2.2 Verwendung einer Cursor Variablen... 16 1.2.2.1 Deklaration... 16 1.2.2.2 Öffnen der Cursor Variablen... 17 1.2.2.3 Daten abrufen... 18 1.2.2.4 Schließen der Cursor Variablen... 19 1.2.2.5 Cursor Variablen und dynamisches SQL... 20 1.2.2.6 Vorteile von Cursor Variablen... 21 1.2.2.7 CURSOR-Funktion... 22 1.2.2.8 Restriktionen für Cursor Variablen... 23 1.2.3 Implicit Result Sets... 24 1.2.3.1 Überblick Implicit Result Sets... 24 1.2.3.2 Vorteile Implicit Result Sets... 25 1.2.3.3 Implicit Result Sets (Beispiel 1)... 26 1.2.3.4 Implicit Result Sets (Beispiel 2)... 27 1.3 Design mit Subtypen... 28 1.3.1 Definition eines Subtyps... 30 1.3.2 Deklaration einer Variablen... 31 1.4 Objekttypen... 32 1.4.1 Definition eines Objekttyps... 32 1.4.2 Objekttyp erstellen... 33 1.4.3 Objekttypen verwenden... 34 1.4.4 Objekttypen und Konstruktormethode... 35 1.5 Übungen... 36 2 Collections... 37 2.1 Collections Übersicht... 38 2.2 Collections Arten... 39 2.3 Collections Eigenschaften... 40 2.4 Collections Syntax... 41 2.5 Beispiele für Deklarationen von Collections... 42 2.6 Verwendung von Collections in PL/SQL... 43 2.7 Initialisierung von Collections... 44 2.8 Zugriff auf Collection-Elemente... 45 2.9 Funktionen für Collections... 46 2.10 Beispiel Funktionen für Collections... 48 2.11 Unterschied zwischen DELETE und TRIM... 50 2.12 Funktionen für Nested Tables... 51 2.13 Exceptions bei Nested Table und Varray... 57 2.14 Beispiel für Exceptions bei Nested Table und Varray... 58 2.15 Ausnahmebehandlung der Collections... 59 2.16 Nested Table und Varray in der Datenbank... 61 2.16.1 Überblick Nested Table und Varray in der Datenbank... 61 2.16.2 Beispiel DB-Tabelle anlegen... 62 2.16.3 Beispiel DB-Tabelle füllen... 63 2.16.4 Beispiel DB-Tabelle selektieren... 64 2.17 Übungen... 65 3 Externe Prozeduren... 67 Version: 12.07 Seite 3

3.1 Einführung in Externe Prozeduren... 68 3.1.1 Externe Prozeduren - Überblick... 68 3.1.2 Externe Prozeduren Vorteile... 69 3.2 Externe Prozeduren mit Java... 70 3.2.1 Java-Überblick... 70 3.2.2 Schritte zum Entwickeln von Java-Klassenmethoden... 71 3.2.3 Java-Klassenmethoden laden... 72 3.2.4 Java-Klassenmethoden veröffentlichen... 74 3.2.5 Beispiel zur Java-Klassenmethoden veröffentlichen... 75 3.2.6 Java-Routine ausführen... 76 3.2.7 Packages für Java-Klassenmethoden erstellen... 77 3.2.8 Java Just in Time (JIT) Compiler... 78 3.2.9 JavaScript-Code ausführen... 79 3.3 Übungen... 80 4 Code analysieren und Performanceoptimierung... 82 4.1 Performancesteigerung durch Design... 83 4.1.1 Code Modularisierung... 83 4.1.2 SQL und PL/SQL im Vergleich... 84 4.1.3 Context-Wechsel SQL und PL/SQL... 87 4.1.4 Bulk Collect mit mehreren Collections... 88 4.1.5 Bulk Collect mit einer Collection... 89 4.1.6 FORALL... 90 4.1.7 FORALL mit RETURNING-Klausel... 91 4.1.8 SAVE EXCEPTIONS verwenden... 92 4.1.9 FOR ALL EXCEPTIONS beheben... 93 4.1.10 WITH-PL/SQL-Klausel... 94 4.1.11 Beispiel mit WITH-PL/SQL-Klausel... 95 4.1.12 PRAGMA UDF... 96 4.1.13 Logische Test mit dem günstigsten Vergleich zuerst... 97 4.1.13.1 Boolesche Algebra... 97 4.1.13.2 OR - Verknüpfung... 98 4.1.13.3 AND - Verknüpfung... 99 4.1.14 Implizite Datentypkonvertierung... 100 4.1.15 PLS_INTEGER verwenden... 101 4.1.16 NOT NULL CONSTRAINT... 102 4.1.17 Datenübertragung zwischen PL/SQL Programmen... 103 4.1.18 PL/SQL Native Compilation... 105 4.1.18.1 Überblick... 105 4.1.18.2 Durchführung... 107 4.1.18.3 PL/SQL Native Compilation der gesamten Datenbank... 109 4.1.19 SIMPLE_INTEGER... 111 4.1.20 Das Continue Statement... 113 4.1.21 Das Continue [WHEN] Statement... 114 4.1.22 Sequenzen in PL/SQL... 115 4.1.23 Compound Trigger... 116 4.1.23.1 Compound Trigger Zeitpunkte... 117 4.1.23.2 Compound Trigger Deklaration... 118 4.1.24 Parameter Notation für PL/SQL Calls... 119 4.2 Codierungsinformationen... 120 4.2.1 Codierungsinformationen ermitteln... 120 4.2.2 View ALL_ARGUMENTS... 121 4.2.3 Inquiry Directive... 122 4.2.4 DBMS_UTILITY.FORMAT_CALL_STACK... 123 4.2.5 Beispiel mit DBMS_UTILITY.FORMAT_CALL_STACK... 124 4.2.6 DBMS_UTILITY.FORMAT_ERROR_BACKTRACE... 125 4.2.7 Beispiel mit DBMS_UTILITY.FORMAT_ERROR_BACKTRACE... 126 4.2.8 Beispiel mit Aufruf-Stack und Fehlerstelle... 127 4.2.9 UTL_CALL_STACK PL/SQL-Package... 128 4.2.10 Beispiel UTL_CALL_STACK PL/SQL-Package... 131 Seite 4 Version: 12.07

4.2.11 DBMS_UTILITY.EXPAND_SQL_TEXT... 132 4.3 PL/SQL Tracing... 133 4.3.1 PL/SQL Tracing Übersicht... 133 4.3.2 PL/SQL Tracing Installation... 134 4.3.3 PL/SQL Tracing Vorgehensweise... 135 4.3.4 PL/SQL-Package DBMS_TRACE Konstanten... 136 4.3.5 Beispiel PL/SQL Tracing... 137 4.4 Profiling... 139 4.4.1 Profiling Übersicht... 139 4.4.2 Profiling Installation... 140 4.4.3 DBMS_PROFILER PL/SQL-Package... 141 4.4.4 Profiling Vorgehensweise... 142 4.4.5 Profiling Beispiel... 143 4.4.6 Profiling Auswertungsbeispiel... 144 4.5 Hierarchischer Profiler... 146 4.5.1 Hierarchischer Profiler Übersicht... 146 4.5.2 Hierarchischer Profiler Architektur... 147 4.5.3 Hierarchischer Profiler Installation... 148 4.5.4 Hierarchischer Profiler Vorgehensweise... 149 4.5.5 Hierarchischer Profiler Beispiel... 150 4.5.6 Reportgenerierung mit plshprof... 152 4.5.7 Beispielreport... 153 4.6 PL/Scope... 154 4.6.1 Code-Analyse mit PL/Scope... 154 4.6.2 Data Dictionary... 156 4.6.3 Beispiel für die Benutzung... 158 4.7 Übungen... 160 5 Large Objects (LOB)... 162 5.1 LOB Datentypen... 163 5.1.1 Verwendungszweck von LOB... 163 5.1.2 Übersicht Large Objects... 164 5.1.3 Externe LOBs... 165 5.1.4 Einschränkungen bei LOBs... 166 5.1.5 LOB-Locator... 167 5.1.6 Datentypkonvertierung... 168 5.2 DBMS_LOB Package... 169 5.2.1 Übersicht DBMS_LOB Package... 169 5.2.2 LOBs verändern... 170 5.2.3 LOBs lesen... 174 5.2.4 Temporäre LOBs... 176 5.2.5 BFILE Funktionen... 177 5.2.6 Exceptions bei LOBs... 178 5.2.7 Beispiel LOBs... 179 5.3 DBMS_XSLPROCESSOR Package... 182 5.4 Oracle LOB Secure Files... 183 5.4.1 Aktivierung von LOB Secure Files... 184 5.4.2 Einsatzmöglichkeiten... 185 5.4.3 Komprimierung bei Secure Files... 186 5.4.4 Deduplication bei Secure Files... 188 5.4.5 Transparente Verschlüsselung... 190 5.5 Übungen... 192 6 utplsql... 193 6.1 Überblick utplsql... 194 6.2 Architektur utplsql... 195 6.3 Installation utplsql... 196 6.4 Aufbau eines Unittest... 197 6.5 PL/SQL-Packages utplsql... 198 6.6 utplsql PL/SQL-Package... 199 Version: 12.07 Seite 5

6.7 utconfig PL/SQL-Package... 200 6.8 utassert PL/SQL-Package... 201 6.9 Beispiel mit utplsql... 203 6.10 Besonderheiten Unittest... 206 6.11 Übungen... 207 7 FGA VPD (Add-on)... 208 7.1 Überblick Fine Grained Access Control... 209 7.2 Funktionsweise Fine Grained Access Control... 210 7.3 Architektur Fine Grained Access Control... 211 7.4 Policy Funktion erstellen... 212 7.5 Policy erstellen... 213 7.6 Spaltenbasierte Policy erstellen... 214 7.7 Zugriffsrechte... 215 7.8 Package DBMS_RLS... 216 7.9 Übungen... 218 7.9.1 Übungen... 218 8 Analytische Funktionen (Add-on)... 220 8.1 Analytische Funktionen Übersicht... 221 8.2 PARTITION BY... 222 8.3 ORDER BY... 223 8.4 WINDOWING CLAUSE... 224 8.5 Gruppenfunktionen als Analytische Funktionen... 227 8.6 DENSE_RANK, RANK und ROW_NUMBER... 228 8.7 CUME_DIST, NTITLE und RATIO_TO_REPORT... 229 8.8 LAG und LEAD... 230 8.9 FIRST_VALUE und LAST_VALUE... 231 8.10 Beispiel AVG (ohne Klauseln)... 232 8.11 Beispiel AVG (mit PARTITION BY)... 233 8.12 Beispiel AVG (mit PARTITION und ORDER BY)... 234 8.13 Beispiel AVG (mit WINDOWING)... 235 8.14 Übungen... 236 Seite 6 Version: 12.07