Wie mit PL / SQL in Oracle 12c zum Programm

Es gibt verschiedene Möglichkeiten, in Ihrer Oracle 12c Datenbank zu arbeiten, um Ihre Daten zu manipulieren. PL / SQL ist eine Structured Query Language (SQL) mit leistungsfähigeren programmatische Konstrukte um Ihren Code gebaut. Beispielsweise PL / SQL Angebote

  • Looping Kontrolle

  • Variablen

  • Wenn / Dann-Konstrukten

  • Fehlerbehandlung

Normale SQL hat wirklich nichts davon. Normale SQL ist gut im Code zu verwenden, die auf bestimmte Daten in den Akten "jetzt." Es kann keine datengesteuerte Entscheidungen zu treffen. Sie müssen wissen, was, dass die Daten - und wie Sie wollen, es zu suchen.

PL / SQL ist auch sicherer als normale SQL. Wie es aussieht, wenn Benutzer SQL ausführen, müssen sie Berechtigungen auf die zugrunde liegenden Objekte, in denen die Daten lebt. Doch mit PL / SQL, führen benannte Programme mit den Berechtigungen des Eigentümers.

Auf diese Weise könnte der Eigentümer der Daten ein Programm schreiben, um die Daten zu verwalten. Der Eigentümer gibt dann Zugriff auf das Programm dem Benutzer, nicht die zugrunde liegenden Objekte. Zum Beispiel, sagen Sie ein Programm, das das Gehalt der Geschichte des Benutzers zieht für sie zu sehen.

Sie wollen nicht der Benutzer auf die Mitarbeiter Gehaltstabelle auswählen zu können. Und ohne PL / SQL-Programm, das ist, was Sie tun müssten. Sie können es Code, so dass, wenn das Programm ausgeführt wird, zieht das Programm in den angeschlossenen Benutzer als eine Variable und sammelt die Gehaltshistorie für den Benutzer nur.

PL / SQL ist oft die primäre Domäne der Anwendungsentwickler. Als Datenbankadministrator (DBA), aber Sie sollten auch mit den grundlegenden Prämissen des Codes und der Lage sein, zu lesen, wie die Code-Funktionen vertraut sein. Obwohl DBAs nicht Anwendungsentwickler sein kann, werden Sie aufgefordert werden, troubleshoot Code oder tune-Code zu helfen, die in Form von PL / SQL-Programme sein kann.

Grundtypen von PL / SQL-Programme in Oracle 12c

PL / SQL-Programme gibt es in vielen Formen. PL / SQL-Programme werden manchmal auch als "Programmeinheiten." Nachstehend finden Sie eine Auflistung der häufigsten Arten von PL / SQL-Konstrukte, Sie kommen über.

NameBeschreibung
ANONYMOUS BLOCKUn-named-Programm, das von der Kommandozeile läuft
VERFAHRENDie gespeicherten, mit dem Namen Programm, das eine Aufgaben ausführt
FUNKTIONEin Programm, das Eingabe nimmt, wirkt auf sie, und producesoutput
PAKETGruppe von benannten Verfahren und / oder Funktionen, die bytask verwandt sind
AUSLÖSERProgramm wirkt auf Ausgang eines anderen Action- firesautomatically
Grundlagen der PL / SQL-Block-Struktur in Oracle 12c

PL / SQL-Programme werden auf dem integrierten Blockstruktur. Das heißt, sie können zerbrochen werden in spezifische Teile des Programms basierend auf Funktion. Die Teile des PL / SQL-Block unterscheiden sich nach der Art der Programmeinheit etwas basiert, aber sie alle haben ähnliche Eigenschaften. Hier ist eine Auflistung der Teile eines PL / SQL-Programmeinheit:

  • deklarative: Dieser Abschnitt enthält den Namen des Gerätes (wenn es genannt) und alle Variablen. Die Variablen werden genannt, geschrieben, und gegebenenfalls in Abschnitt initialisiert. Die Programmeinheit würde nicht genannt werden, wenn sie als anonymer Block codiert. Ein anonymer Block wird verwendet, wenn Sie oft ein Programm für einen einmaligen Gebrauch zu schreiben.

  • Körper: Dies ist der Abschnitt, der das Fleisch des Programms enthält. Es enthält die Funktionalität und die Geschäftslogik erforderlich, um die Variablen und Daten zu verarbeiten. Sie werden Dinge wie Schleifen sehen und wenn / dann Aussagen in diesem Abschnitt.

  • Ausnahme: Dieser Abschnitt definiert und behandelt alle Fehler, die bei der Verarbeitung des Körpers kommen. Wenn ein Fehler richtig gehandhabt wird, kann oft das Programm läuft weiter. Oder zumindest eine sinnvolle Ausgangsnachricht an den Endbenutzer. Wenn ein Fehler auftritt und wird von der Ausnahme Abschnitt nicht behandelt, oft bricht das Programm mit einer Standard-Fehlermeldung.

  • Ende: Der Endabschnitt enthält nichts. Es bedeutet nur, dass das Programm am Ende seiner Verarbeitung ist. Und in einem Paket von vielen Verfahren, trennt sich der Endabschnitt aus dem nächsten Verfahren in der Liste.

Wie PL / SQL-Programmen mit Oracle 12c zu nennen

PL / SQL-Prozeduren, Funktionen und Pakete werden in ein paar verschiedene Arten aufgerufen. Sie können den Befehl ausführen, oder Sie können das Programm als Teil eines anderen Blocks nennen. Löst aus, auf der anderen Seite, sind nicht von der Befehlszeile aufgerufen.

Sie führen automatisch erst nach einem anderen Prozess abgeschlossen ist. Zum Beispiel könnten Sie ein Auslöser wollen, dass jedes Mal, wenn jemand zu feuern aktualisiert die Gehaltsspalte der Tabelle Personal. Dann, vielleicht schießt dass Trigger eine E-Mail an die HR-Manager die Änderung zu melden.

Der Befehl DESCRIBE kann funktionieren, auch gegen PL / SQL-Programme. Dies kann hilfreich sein, wenn Sie die Argumente oder Variablen nicht wissen, dass das Verfahren für die Eingabe in Anspruch nehmen. Zum Beispiel, sagen Sie eine Prozedur, die das Gehalt für einen Mitarbeiter auf Basis von Vor- und Nachnamen Eingang erhält. Das Verfahren wird get_sal genannt.

SQL> DESCRIBE get_salPROCEDURE get_salArgument Name Typ In / Out Default? ------------------------------ -------- --------------- ------ -------- P_LAST_NAME VARCHAR2INP_FIRST_NAME VARCHAR2IN

Das Verfahren dauert bis in den Argumenten von VARCHAR2 Typ.

Hier ist, wie Sie den Vorgang mit dem Befehl EXECUTE ausführen würde, mit dem Mitarbeiter Mike Whalen:

SQL> execute get_sal ( 'Whalen', 'Mike') Mike, Whalen - Macht: $ 8300PL / SQL-Prozedur erfolgreich abgeschlossen.

Wie bereits erwähnt, hat Oracle eine Vielzahl von Pre bereitgestellten Packages, Prozeduren und Funktionen für die Datenbank zu verwalten. Um eine vollständige Liste zu erhalten, gehen Sie im folgenden Abschnitt der Dokumentation dass umreißt alle Oracle bereitgestellten Programmeinheiten.

Hier sind einige Beispielprogramme-Oracle geliefert.

NameBeschreibung
DBMS_SCHEDULERVerwaltet die interne Datenbank-Scheduler
DBMS_STATSSammelt Statistiken über Benutzer, Objekte, System und wholedatabase
SYSDATEAusgänge aktuelle Uhrzeit und das Datum des Systems
UTL_MAILUtility für E-Mail mit Funktionen, zB Anlagen, Cc andBcc
DBMS_METADATAFunktion für unter othertasks aus Datenbankobjekt DDL ziehen
DBMS_DATAPUMP APIVerwaltet Data Pump innerhalb eines PL / SQL-Programm

Menü