Oracle PL/SQL kurz & gut
By Steven Feuerstein, Bill Pribyl and Chip Dawes
4/5
()
About this ebook
- Blockstruktur, Bezeichner, Variablen, Datentypen und Deklarationen
- Anweisungen zur Ablaufsteuerung, zur Cursor-Verwaltung und zum Exception-Handling
- Aufruf von PL/SQL-Funktionen in SQL
- Datensätze, Prozeduren, Funktionen, Trigger und Packages
- Kompilationsoptionen, objektorientierte Features und Collections
Related to Oracle PL/SQL kurz & gut
Related ebooks
SQL von Kopf bis Fuß Rating: 4 out of 5 stars4/5Einführung in Programmiersprachen Rating: 0 out of 5 stars0 ratingsJava 8 - Die Neuerungen: Lambdas, Streams, Date and Time API und JavaFX 8 im Überblick Rating: 0 out of 5 stars0 ratingsEinführung in SQL: Daten erzeugen, bearbeiten und abfragen Rating: 0 out of 5 stars0 ratingsEinfach Java: Gleich richtig programmieren lernen Rating: 0 out of 5 stars0 ratingsXML für Eilige Rating: 0 out of 5 stars0 ratingsJava – kurz & gut Rating: 0 out of 5 stars0 ratingsBootstrap kurz & gut Rating: 0 out of 5 stars0 ratingsPrinzipien des Softwaredesigns: Entwurfsstrategien für komplexe Systeme Rating: 0 out of 5 stars0 ratingsPowerShell – kurz & gut: Für PowerShell 7 und Windows PowerShell 5 Rating: 0 out of 5 stars0 ratingsKompaktkurs C# 7 Rating: 0 out of 5 stars0 ratingsC# 10 – kurz & gut Rating: 0 out of 5 stars0 ratingsC# 8.0 – kurz & gut Rating: 0 out of 5 stars0 ratingsDatenbanken: Grundlagen und Entwurf Rating: 0 out of 5 stars0 ratingsSprechen Sie Java?: Eine Einführung in das systematische Programmieren Rating: 4 out of 5 stars4/5C++-Standardbibliothek - kurz & gut Rating: 0 out of 5 stars0 ratingsModerne Datenzugriffslösungen mit Entity Framework 6 Rating: 0 out of 5 stars0 ratingsNext Level JavaScript: Schlagworte Rating: 0 out of 5 stars0 ratingsWeb-Applikationen entwickeln mit NoSQL: Das Buch für Datenbank-Einsteiger und Profis! Rating: 0 out of 5 stars0 ratingsAlgorithmen: Grundlagen und Implementierung Rating: 0 out of 5 stars0 ratingsSQL – kurz & gut Rating: 0 out of 5 stars0 ratingsSQL-Abfragen optimieren: Was Entwickler über Performance wissen müssen Rating: 0 out of 5 stars0 ratingsEinfach Python: Gleich richtig programmieren lernen Rating: 0 out of 5 stars0 ratingsIPv6 Grundlagen - Funktionalität - Integration Rating: 0 out of 5 stars0 ratingsGraphQL: Eine Einführung in APIs mit GraphQL Rating: 0 out of 5 stars0 ratingsJavaScript objektorientiert: Verständlicher, flexibler und effizienter programmieren Rating: 0 out of 5 stars0 ratingsJava – die Neuerungen in Version 9 bis 12: Modularisierung, Syntax- und API-Erweiterungen Rating: 0 out of 5 stars0 ratingsC++17: Praxiswissen zum neuen Standard. Von C++11 bis 17 Rating: 0 out of 5 stars0 ratingsDas große Python3 Workbook: Mit vielen Beispielen und Übungen - Programmieren leicht gemacht! Rating: 4 out of 5 stars4/5
Computers For You
Machine Learning – kurz & gut: Eine Einführung mit Python, Pandas und Scikit-Learn Rating: 5 out of 5 stars5/5Anglizismen und andere "Fremdwords" deutsch erklärt: Über 1000 aktuelle Begriffe Rating: 0 out of 5 stars0 ratingsLexikon der Symbole und Archetypen für die Traumdeutung Rating: 5 out of 5 stars5/5Einführung ins Darknet: Darknet ABC Rating: 0 out of 5 stars0 ratingsEinstieg in ChatGPT: Künstliche Intelligenz verstehen und nutzen: Ein praktischer Ratgeber für Einsteiger Rating: 0 out of 5 stars0 ratingsLaws of UX: 10 praktische Grundprinzipien für intuitives, menschenzentriertes UX-Design Rating: 0 out of 5 stars0 ratingsDie Geschichte des Computers: Wie es bis zur Form des heutigen 'PC' kam. Rating: 0 out of 5 stars0 ratings60+ Webtools - Für den Unterricht und mehr: Unterricht Digital gestalten und spielerisch Online Unterrichten Rating: 0 out of 5 stars0 ratingsRunning Lean: Das How-to für erfolgreiche Innovationen Rating: 4 out of 5 stars4/5Neuronale Netze selbst programmieren: Ein verständlicher Einstieg mit Python Rating: 0 out of 5 stars0 ratingsWordPress - Elementor Rating: 0 out of 5 stars0 ratings...Als die Noten laufen lernten...Band 2: Kabarett-Operette-Revue-Film-Exil. Unterhaltungsmusik bis 1945 Rating: 0 out of 5 stars0 ratingsShopware 6 Handbuch Rating: 0 out of 5 stars0 ratingsRaspberry Pi Kinderleicht: Pi 4 mit 8 GB Rating: 0 out of 5 stars0 ratingsLinux Mint für Einsteiger Rating: 0 out of 5 stars0 ratingsDatenbanken: Grundlagen und Entwurf Rating: 0 out of 5 stars0 ratingsBig Data: Die neue Intelligenz des Menschen (GEO eBook) Rating: 0 out of 5 stars0 ratingsScribus Desktop Publishing: Das Einsteigerseminar Rating: 0 out of 5 stars0 ratingsSo findest du den Einstieg in WordPress: Die technischen Grundlagen zu Installation, Konfiguration, Optimierung, Sicherheit, SEO Rating: 0 out of 5 stars0 ratingsDocker und die Containerwelt: Einstieg und Expertentipps rund um Docker-Container Rating: 1 out of 5 stars1/5Die KI sei mit euch: Macht, Illusion und Kontrolle algorithmischer Vorhersage Rating: 0 out of 5 stars0 ratingsBusiness-Intelligence-Lösungen für Unternehmen Rating: 0 out of 5 stars0 ratingsPocket Book - Das inoffizielle Handbuch. Anleitung, Tipps, Tricks Rating: 0 out of 5 stars0 ratingsUnterirdisches Slowenien: Ein Exkursionsführer zu den Höhlen des Klassischen Karstes Rating: 0 out of 5 stars0 ratingsAufstieg der Roboter: Wie unsere Arbeitswelt gerade auf den Kopf gestellt wird - und wie wir darauf reagieren müssen Rating: 0 out of 5 stars0 ratingsBig Data - Apache Hadoop Rating: 0 out of 5 stars0 ratingsEinstieg in den Online-Unterricht: Videokonferenzen in der Erwachsenenbildung Rating: 0 out of 5 stars0 ratingsDie Burg IT-Sicherheit: IT-Sicherheit Stein auf Stein Rating: 0 out of 5 stars0 ratingsNiklas Luhmann: "... stattdessen ...": Eine biografische Einführung Rating: 0 out of 5 stars0 ratings
Reviews for Oracle PL/SQL kurz & gut
6 ratings1 review
- Rating: 3 out of 5 stars3/5This book isn't for the novice. YOu need to know some SQL at least and the concepts of a relational database also.
Book preview
Oracle PL/SQL kurz & gut - Steven Feuerstein
Oracle PL/SQL: kurz & gut
Inhaltsverzeichnis
1. Oracle PL/SQL – kurz & gutEinleitungDanksagungKonventionenPL/SQL-SprachgrundlagenDer PL/SQL-ZeichensatzBezeichnerBoolesche, numerische und ZeichenliteraleNumerische LiteraleDatums- und Uhrzeit-Intervall-LiteraleBegrenzerKommentarePragmasAnweisungenBlockstrukturVariablen und ProgrammdatenSkalare DatentypenLOB-DatentypenImplizite Datentyp-UmwandlungNULL in PL/SQLVariablen deklarierenVerankerte DeklarationenProgrammiererdefinierte SubtypenBedingte und sequenzielle KontrollstrukturenBedingte KontrollstrukturenSequenzielle KontrollstrukturenSchleifenEinfache SchleifeNumerische FOR-SchleifeCursor-FOR-SchleifeWHILE-SchleifeREPEAT UNTIL-Schleife emulierenEXIT-AnweisungCONTINUE-Anweisung (Oracle Database 11g)Schleifen-LabelInteraktion mit der DatenbankSequenzen in PLSQLTransaktionsverwaltungAutonome TransaktionenCursor in PL/SQLExplizite CursorImplizite CursorDynamische CursorDBMS_SQLSQL-Injektion und Bind-VariablenCursor-VariablenCursor-AusdrückeException-HandlingExceptions deklarierenExceptions auslösenGeltungsbereichPropagierungDatensätze in PL/SQLDatensätze deklarierenDatensatz-Felder referenzierenDatensätze zuweisenDatensätze und DMLGeschachtelte DatensätzeCollections in PL/SQLEine Collection deklarierenEine Collection initialisierenElemente hinzufügen und entfernenFunktionen für geschachtelte TabellenCollection-MethodenCollections und ZugriffsrechteGeschachtelte CollectionsBulk BindsEingebaute Funktionen und PackagesEingebaute FunktionenEingebaute Funktionen für reguläre AusdrückeEingebaute PackagesGespeicherte Prozeduren und FunktionenProzedurenFunktionenParameterLokale ProgrammeProgramme überladenVorwärts-DeklarationenTabellenfunktionenFunktionsergebnis-CacheZugriffsrechte und gespeichertes PL/SQLTriggerTrigger erzeugenTrigger-PrädikateDML-EreignisseZusammengesetzte DML-TriggerDDL-EreignisseDatenbank-EreignissePackagesPackage-StrukturPackage-Elemente referenzierenPackage-DatenDas Pragma SERIALLY_REUSABLEPackage-InitialisierungPL/SQL-Funktionen in SQL aufrufenEine Funktion aufrufenPackage-Funktionen in SQL aufrufenVorrang der Spaltenangabe vor dem FunktionsnamenObjektorientierte FeaturesObjekttypenTypvererbungMethodenMethoden in SubtypenObjekte mit PL/SQL und SQL manipulierenUpcasting und DowncastingObjekttypen ändernKompilierungGespeicherte PL/SQL-Programme kompilierenBedingte KompilierungCompiler-WarnungenDer optimierende CompilerNative Kompilierung von PL/SQL durchführenJava-IntegrationBeispielPL/SQL den Zugriff auf Java-Code ermöglichenData Dictionary
Oracle PL/SQL: kurz & gut
Steven Feuerstein
Bill Pribyl
Chip Dawes
Copyright © 2008 O'Reilly Verlag GmbH & Co.KG
Die Informationen in diesem Buch wurden mit größter Sorgfalt erarbeitet. Dennoch können Fehler nicht vollständig ausgeschlossen werden. Verlag, Autoren und Übersetzer übernehmen keine juristische Verantwortung oder irgendeine Haftung für eventuell verbliebene fehlerhafte Angaben und deren Folgen.
Alle Warennamen werden ohne Gewährleistung der freien Verwendbarkeit benutzt und sind möglicherweise eingetragene Warenzeichen. Der Verlag richtet sich im Wesentlichen nach den Schreibweisen der Hersteller. Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikrovefilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.
Bibliografische Information Der Deutschen Bibliothek Die Deutsche Bibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.ddb.de abrufbar.
Die Darstellung von Ameisen im Zusammenhang mit dem Thema Oracle PL/SQL ist ein Warenzeichen von O'Reilly Media, Inc.
Oracle® und alle Oracle-basierten Warenzeichen und Logos sind Warenzeichen oder eingetragene Warenzeichen der Oracle Corporation, Inc. in den USA und in anderen Ländern. Der O'Reilly Verlag ist unabhängig von der Oracle Corporation.
Dieses Buch ist auf 100% chlorfrei gebleichtem Papier gedruckt.
Satz: FKM, Neumünster
O'Reilly Media Germany
Kapitel 1. Oracle PL/SQL – kurz & gut
Einleitung
Oracle PL/SQL – kurz & gut ist eine Schnellreferenz zur Programmiersprache PL/SQL, die prozedurale Erweiterungen der relationalen Datenbanksprache SQL und zahlreiche Oracle-Entwicklungstools zur Verfügung stellt. Überall dort, wo ein Package, eine Prozedur oder Funktion nur von einer bestimmten Version der Oracle-Datenbank (z.B. Oracle Database 11g) unterstützt wird, finden Sie einen entsprechenden Hinweis im Text.
Der Zweck dieser Taschenreferenz ist es, dem Benutzer von Oracle PL/SQL das Auffinden der Syntax von bestimmten Sprachelementen zu erleichtern. Sie ist jedoch kein vollständiges Benutzerhandbuch. Grundkenntnisse in der Programmiersprache PL/SQL werden vorausgesetzt. Weitere Informationen finden Sie in den folgenden O'Reilly-Büchern:
Danksagung
Wir danken all denen, die an diesem Buch mitgearbeitet haben. Besonderer Dank gilt Bryn Llewelyn für seine Beiträge zur letzten Überarbeitung und zur dritten Auflage. Vielen Dank auch den Gutachtern der ersten Auflage, Eric J. Givler und Stephen Nelson, und dem Gutachter für die zweite und dritte Auflage, Jonathan Gennick. Außerdem wollen wir uns für die gute Arbeit der O'Reilly-Mannschaft bei der Bearbeitung und Produktion dieses Buchs bedanken.
Konventionen
GROSSBUCHSTABEN
Zeigen PL/SQL-Schlüsselwörter sowie bestimmte Bezeichner an, die von der Oracle Corporation als Namen eingebauter Funktionen und Pakete verwendet werden.
Kursiv
Zeigt Datei- und Verzeichnisnamen sowie Begriffseinführungen an.
Nichtproportionalschrift
Wird für Programmbeispiele, Zeichenliterale und Bezeichner verwendet.
Nichtproportionalschrift fett
Zeigt in Beispielen, die Interaktionen illustrieren, Benutzereingaben an.
[]
Schließen in Syntaxbeschreibungen optionale Elemente ein.
{}
Schließen in Syntaxbeschreibungen eine Liste ein, aus der Sie ein Element auswählen müssen.
|
Grenzt die Listenelemente in Syntaxbeschreibungen voneinander ab.
PL/SQL-Sprachgrundlagen
Dieser Abschnitt fasst die grundlegenden Bestandteile der PL/SQL-Sprache zusammen: Zeichen, Bezeichner, Literale, Begrenzer, die Verwendung von Kommentaren und Pragmas sowie den Aufbau von Anweisungen und Blöcken.
Der PL/SQL-Zeichensatz
Die Programmiersprache PL/SQL wird aus Buchstaben, Zahlen, Symbolen und Whitespace-Zeichen aufgebaut, die in der folgenden Tabelle genauer definiert werden:
Zeichen werden zu vier lexikalischen Einheiten gruppiert: zu Bezeichnern, Literalen, Begrenzern und Kommentaren.
Bezeichner
Bezeichner sind Namen für PL/SQL-Objekte wie Konstanten, Variablen, Exceptions, Prozeduren, Cursor und reservierte Wörter. Bezeichner besitzen die folgenden Merkmale:
Sie können bis zu 30 Zeichen lang sein.
Sie dürfen keine Whitespace-Zeichen (Leerzeichen, Tabulator, Wagenrücklauf) enthalten.
Sie müssen mit einem Buchstaben beginnen.
Sie können Dollar-Zeichen ($), Unterstriche ( _ ) oder Pfund-Zeichen enthalten (#).
Sie berücksichtigen keine Groß-/Kleinschreibung.
Außerdem dürfen Sie keine PL/SQL-Schlüsselwörter als Bezeichner verwenden.
Sie sollten davon absehen, die reservierten Wörter von PL/SQL in Ihren Programmen als Bezeichner zu verwenden, da das zu Kompilier- oder Laufzeitfehlern führen kann, die schwer zu lösen sind.
Tipp
In früheren Ausgaben enthielt dieses Buch eine Liste der reservierten Wörter. In der V$RESERVED_WORDS-Data-Dictionary-View von Oracle Database 11g Release 1 werden mittlerweile jedoch mehr als 1.600 Wörter als reserviert aufgeführt. Bei unseren Tests haben wir festgestellt, dass mehr als 650 dieser Wörter nicht als Namen von Prozeduren oder Variablen verwendet werden können. Schlagen Sie in V$RESERVED_WORDS nach, wenn Sie eine Liste der nicht unterstützten Bezeichner suchen, und vermeiden Sie diese als Programm- oder Variablennamen.
Wenn Bezeichner in Anführungszeichen eingeschlossen sind, werden alle oben genannten Regeln außer der ersten ignoriert. So ist z.B. die folgende Deklaration gültig:
DECLARE
1 ^abc
VARCHAR2(100);
BEGIN
IF 1 ^abc
IS NULL THEN ...
END;
Boolesche, numerische und Zeichenliterale
Literale sind spezifische Werte, die nicht durch Bezeichner dargestellt werden. So sind z.B. TRUE, 3.14159, 6.63E-34, 'Moby Dick' und NULL allesamt Boolesche, numerische oder Zeichenliterale. Es gibt keine Literale von komplexen Datentypen, da ihre Werte interne Darstellungen sind; komplexe Typen erhalten ihre Werte durch eine direkte Zuweisung über einen Konstruktor. Anders als das übrige PL/SQL berücksichtigen Literale die Groß-/Kleinschreibung. Um einfache Anführungszeichen in ein Zeichenliteral einzubetten, müssen Sie zwei einfache Anführungszeichen nebeneinanderstellen.
Seit Oracle Database 10g können Sie Ihren eigenen Angabemechanismus für String-Literale in Ihren SQL- sowie PL/SQL-Anweisungen definieren. Verwenden Sie die Zeichen q' (q und ein einfaches gerades Anführungszeichen), um den selbst definierten Begrenzer für Ihre String-Literale anzuzeigen. Schließen Sie den literalen String mit dem selbst definierten Begrenzer und einem anhängenden einfachen Anführungszeichen – z.B. q'!mein String!'. NCHAR- und NVARCHAR-Begrenzern werden die Buchstaben nq vorangestellt, z.B. nq'^NCHAR-String^'. Diese Technik kann Ihren Code vereinfachen, wenn in einem String mehrere aufeinanderfolgende einfache Anführungszeichen auftauchen, wie es bei den Literalen in SQL-Anweisungen der Fall ist. Wenn Sie Ihren Begrenzer mit einem der vier Klammerzeichen ( [ {< definieren, müssen Sie als schließenden Begrenzer auch die schließende Klammerversion verwenden. Beispielsweise muss q'[ mit ]' geschlossen werden.
Die folgende Tabelle zeigt einige Beispiele:
Numerische Literale
Eventuell können Sie die Laufzeitperformance verbessern, wenn Sie den Datentyp numerischer Literale explizit angeben. Das erreichen Sie, indem Sie den Dezimaltrenner aus- oder einschließen oder indem Sie an den Zahlwert ein f oder d anhängen. Beispiele sehen Sie in der folgenden Tabelle:
Oracle Database 10g hat einige spezielle benannte Konstanten eingeführt:
Zu diesen Konstanten gibt es jeweils noch BINARY_DOUBLE_-Versionen.
Datums- und Uhrzeit-Intervall-Literale
Die in Oracle9i eingeführten Datums- und Uhrzeit-Intervall-Datentypen stellen ein zeitliches Intervall dar, das entweder in Jahren und Monaten oder in Tagen, Stunden, Minuten, Sekunden und Sekundenbruchteilen ausgedrückt wird. Literale dieser Datentypen werden über das Schlüsselwort INTERVAL angegeben, auf das das Literal und der/die Formatierungsstring(s) folgen. Bei der Intervallangabe müssen die größeren Felder den kleineren vorausgehen: Das heißt, YEAR TO MONTH ist zulässig, aber MONTH TO YEAR nicht. Beispiele finden Sie in der folgenden Tabelle:
Begrenzer
Begrenzer sind Symbole mit einer besonderen Bedeutung, beispielsweise := (Zuweisungsoperator), || (Verkettungsoperator) und ; (Anweisungsbegrenzer). Die folgende Tabelle führt die PL/SQL-Begrenzer auf:
Kommentare
Kommentare sind Abschnitte des Programmcodes, die die Lesbarkeit verbessern. Sie werden vom Compiler ignoriert.
Ein einzeiliger Kommentar beginnt mit einem doppelten Bindestrich (--) und endet mit einer neuen Zeile. Der Compiler ignoriert alle Zeichen zwischen -- und der neuen Zeile.
Ein mehrzeiliger Kommentar beginnt mit Schrägstrich-Stern (/*) und endet mit Stern-Schrägstrich (*/ ). Der Kommentarbegrenzer /* */ kann aber auch für einzeilige Kommentare verwendet werden. Der folgende Block demonstriert beide Arten von Kommentaren:
DECLARE
-- Zwei Bindestriche kommentieren diese Zeile aus.
/* Alles ist hier Kommentar, bis der Compiler auf das
folgende Symbol trifft. * /
Sie können keine mehrzeiligen Kommentare in einen