PL / SQL-Lernprogramm: Alles, was Sie über PL / SQL wissen müssen

Das PL / SQL-Lernprogramm enthält anhand verschiedener Beispiele die ausführliche Erläuterung aller erforderlichen Konzepte zur Beherrschung der PL / SQL-Programmierung

PL / SQL ist eine prozedurale Sprache, die die Mängel überwindet, mit denen sie konfrontiert ist Strukturierte Abfragesprache . Es ist eine Erweiterung von SQL und wir können sogar SQL-Abfragen problemlos in PL / SQL-Anwendungen oder -Programmen verwenden. In diesem PL / SQL-Tutorial werden wir die Grundkonzepte von PL / SQL im Detail durchgehen. Die folgenden Themen werden in diesem Artikel behandelt.

Was ist PL / SQL?

Es steht für prozedurale Spracherweiterung auf die Strukturierte Abfragesprache . Oracle hat PL / SQL erstellt, das einige Einschränkungen von SQL erweitert, um eine umfassendere Lösung für die Erstellung geschäftskritischer Anwendungen bereitzustellen, die auf dem Oracle ausgeführt werden .



logo-pl / sql Tutorial - edureka

Eigenschaften

  • PL / SQL bietet die Funktionalität einer prozeduralen Sprache wie Entscheidungsfindung, Iteration usw.

  • Mit einem einzigen Befehl kann PL / SQL eine Reihe von Abfragen ausführen.

  • Wir können auch PL / SQL-Einheiten wie Funktionen, Trigger, Prozeduren usw. wiederverwenden, die nach der Erstellung in der Datenbank gespeichert sind.

  • PL / SQL verfügt auch über einen Ausnahmebehandlungsblock, der die Ausnahmen in PL / SQL behandelt.

  • Eine umfassende Fehlerprüfung ist auch mit PL / SQL möglich

  • Die in PL / SQL geschriebenen Anwendungen können auf andere Hardware und Betriebssysteme portiert werden, sofern Oracle betriebsbereit sein muss.

PL / SQL gegen SQL

SQL PL / SQL
SQL ist eine einzelne Abfrage, mit der DDL- und DML-Operationen ausgeführt werdenPL / SQL ist ein Codeblock, mit dem ein gesamtes Programm oder eine Prozedur / Funktion usw. definiert wird
Es definiert nicht wirklich, wie Dinge getan werden müssen, sondern definiert, was getan werden mussPL / SQL definiert, wie Dinge getan werden müssen
Es führt eine einzelne Anweisung ausEs führt einen Anweisungsblock gleichzeitig aus.
SQL wird hauptsächlich zum Bearbeiten der Daten verwendetPL / SQL wird dagegen zum Erstellen von Anwendungen verwendet
Es darf keinen PL / SQL-Code enthaltenDa es sich um eine SQL-Erweiterung handelt, kann sie SQL-Code enthalten

Stellenbeschreibung für Big Data-Entwickler

Blockstrukturen in PL / SQL

PL / SQL organisiert den Code normalerweise in Blöcken. Der Codeblock ohne Namen wird als anonymer Block bezeichnet. Es wird als anonymer Block bezeichnet, da es nicht in der Oracle-Datenbank gespeichert ist. Schauen wir uns einen anonymen Block in PL / SQL an.

[DECLARE] Deklarationsanweisungen [BEGIN] Ausführungsanweisungen [EXCEPTION] Ausnahmeanweisungen END /

Wenn wir uns das oben gezeigte Diagramm ansehen, können wir sehen, dass die Blockstruktur in vier Teile unterteilt ist, d. H. Deklaration, Anfang, Ausnahme und Ende. Versuchen wir zu verstehen, wie die Blockstruktur in PL / SQL funktioniert. Von all diesen Abschnitten ist der Ausführungsabschnitt obligatorisch und alle anderen sind optional.

  • ERKLÄREN Das Schlüsselwort wird für den Deklarationsabschnitt verwendet, um Datentypen und Strukturen wie Variablen, Funktionen usw. zu deklarieren.

  • START Das Schlüsselwort wird für den Ausführungsabschnitt verwendet. Es ist obligatorisch und enthält alle Anweisungen, die ausgeführt werden müssen. In diesem Block wird die Geschäftslogik definiert. In diesem Block können sowohl prozedurale als auch SQL-Anweisungen verwendet werden.

  • Das AUSNAHME Das Schlüsselwort wird für den Ausnahmeabschnitt verwendet. Es enthält alle Ausnahmeanweisungen.

  • ENDE Das Schlüsselwort markiert das Ende des Blocks und der Schrägstrich '/' gibt an, welches Tool Sie verwenden (Oracle Database Tool), um den PL / SQL-Block auszuführen.

Hier ist ein einfaches Beispiel, um zu zeigen, wie wir den PL / SQL-Code verwenden können.

BEGIN NULL END /

Nachdem wir nun wissen, wie die Blockstruktur in PL / SQL funktioniert, wollen wir die verschiedenen Aspekte von PL / SQL wie das Deklarieren, Benennen und Zuweisen von Werten zu den Variablen verstehen.

PL / SQL-Variablen

Die Variable in PL / SQL ist im Grunde ein variierender Name oder ein temporärer Speicherort, der einen bestimmten Datentyp unterstützt. Lassen Sie uns einen Blick darauf werfen, wie wir die Variablen in einem PL / SQL-Programm verwenden können.

Variable Benennungsregeln

PL / SQL befolgt die folgenden Regeln zum Benennen von Variablen.

  • Die Variable darf nicht länger als 31 Zeichen sein

  • Der Name der Variablen sollte mit einem ASCII-Zeichen beginnen. Da bei PL / SQL zwischen Groß- und Kleinschreibung unterschieden wird, sind Groß- und Kleinbuchstaben unterschiedliche Variablen.

  • Nach dem ersten Zeichen muss ein Sonderzeichen ($, _) oder eine beliebige Zahl stehen.

Regeln der Namensgebung

Verwenden Sie die folgenden unten aufgeführten Namenskonventionen, um die Variablen zu verwenden.

Präfix Datentyp
v_VARCHAR2
n_NUMMER
t_TABELLE
r_REIHE
d_DATUM
b_BOOLEAN

Erklärung

Versuchen wir zu verstehen, wie die Variablendeklaration in PL / SQL erfolgt

Die Deklaration enthält den Variablennamen, gefolgt vom Datentyp und durch ein Semikolon getrennt. Das folgende Beispiel zeigt, wie Sie eine Variable in PL / SQL deklarieren können.

DECLARE v_name VARCHAR (25) n_age NUMBER (3) BEGIN NULL END

Sie können auch die Länge des Datentyps hinzufügen, wie im obigen Beispiel beschrieben.

Anker

Der Anker bezieht sich im Wesentlichen auf die Verwendung des Schlüsselworts% TYPE, mit dem eine Variable mit dem Datentyp deklariert wird, der dem Datentyp einer Spalte einer bestimmten Spalte in einer Tabelle zugeordnet ist.

Schauen Sie sich ein Beispiel an, um dies zu verstehen. Angenommen, wir haben eine Tabelle MITARBEITER, wir können die Anker folgendermaßen verwenden.

DECLARE v_name EMPLOYEE.NAME% TYPE n_age EMPLOYEE.AGE% TYPE BEGIN NULL END /

Zuordnung

Die Zuweisung von Variablen ist recht einfach. Mit dem Zuweisungsoperator können Sie einer Variablen Werte zuweisen. Das folgende Beispiel zeigt, wie wir einer Variablen Werte zuweisen können.

DECLARE v_name VARCHAR (20) n_course VARCHAR (10) BEGIN v_name = 'edureka' v_course = 'sql' END /

Initialisierung

Wir können auch im Deklarationsabschnitt einen Wert für die Variable initialisieren. Das folgende Beispiel zeigt, wie wir Werte für eine Variable initialisieren können.

DECLARE v_name VARCHAR (20) = 'edureka' n_course VARCHAR (10) = 'sql' BEGIN NULL END /

Nachdem wir nun wissen, wie wir mit den Variablen arbeiten können, versuchen wir zu verstehen, wie wir Funktionen in PL / SQL verwenden.

Funktion in PL / SQL

Eine Funktion in PL / SQL ist im Grunde ein benannter Block, der einen Wert zurückgibt. Es wird auch als Unterprogramm oder Unterprogramm bezeichnet. Die folgende Syntax zeigt, wie wir Funktionen in PL / SQL verwenden können.

CREATE [OR REPLACE] FUNCTION Funktionsname [(Parameter_1 [IN] [OUT] Datentyp, Parameter_2 [IN] [OUT] Datentyp, Parameter_N [IN] [OUT] Datentyp] RETURN return_data_type IS BEGIN-Anweisungen return return_data_type EXCEPTION END /

Zunächst müssen Sie nach dem Schlüsselwort einen Funktionsnamen angeben. Der Funktionsname muss mit einem Verb beginnen. Eine Funktion kann keinen, einen oder mehrere Parameter haben, die wir in Parametern angeben. Wir müssen den Datentyp jedes Parameters explizit angeben, und dann kommt der Modus, der eine der folgenden Möglichkeiten bietet.

  • IM - Der Parameter IN ist schreibgeschützt.

  • AUS - Es ist ein schreibgeschützter Parameter

  • IN OUT - Der Parameter IN OUT ist sowohl ein Lese- als auch ein Schreibparameter.

Hier ist ein einfaches Beispiel, um zu zeigen, wie wir Funktionen in PL / SQL verwenden.

CREATE OR REPLACE FUNCTION try_parse (iv_number IN VARCHAR2) RETURN NUMBER BEGIN RETURN to_number (iv_number) AUSNAHME, WENN andere DANN NULL END RETURN

Eine Funktion aufrufen

Versuchen wir im folgenden Beispiel, die Funktion aufzurufen, die wir in einem anonymen Block erstellt haben.

SET SERVEROUTPUT ON SIZE 1000000 DECLARE n_x Nummer n_y Nummer n_z Nummer BEGIN n_x: = try_parse ('256') n_y: = try_parse ('29 .72 ') n_z: = try_parse (' pqrs ') DBMS_OUTPUT.PUT_LINE (n_LUT) n_y) DBMS_OUTPUT.PUT_LINE (n_z) END /

Wir können die Funktion auch in einer SELECT-Anweisung aufrufen. Nachdem wir nun wissen, wie wir Funktionen in PL / SQL verwenden können, versuchen wir zu verstehen, wie wir mit Prozeduren in PL / SQL arbeiten.

PL / SQL-Prozedur

Eine Prozedur ist im Grunde ein Block, der eine bestimmte Aufgabe ausführt. Mithilfe einer Prozedur können wir komplexe Geschäftslogiken umschließen oder kapseln und sie sowohl in der Anwendungs- als auch in der Datenbankebene wiederverwenden.

Schauen wir uns ein einfaches Beispiel an, um zu verstehen, wie die Prozedur in PL / SQL funktioniert

VERFAHREN ERSTELLEN ODER ERSETZEN adjust_salary (in_employee_id IN EMPLOYEES.EMPLOYEE_ID% TYPE, in_percent IN NUMBER) BEGINNEN - Gehalt des Mitarbeiters aktualisieren

Im obigen Beispiel haben wir zwei Parameter: Die Prozedur passt das Gehalt um einen bestimmten Prozentsatz an und das Schlüsselwort UPDATE aktualisiert den Wert in den Gehaltsinformationen.

Prozedur-Header

Der Abschnitt vor dem Schlüsselwort IS wird als Prozedurheader bezeichnet. Im Folgenden sind einige Hinweise aufgeführt, mit denen Sie bei der Arbeit mit Prozeduren vertraut sein müssen.

  • Schema - Dies ist der optionale Name des Schemas, zu dem die Prozedur gehört.

  • Name - Der Name der Prozedur, die mit einem Verb beginnen soll.

  • Parameter - Dies ist die optionale Liste von Parametern.

  • AUTHID - Es wird festgelegt, ob die Prozedur mit den Berechtigungen des aktuellen Benutzers oder des ursprünglichen Eigentümers der Prozedur ausgeführt wird.

    Java-Unterschied zwischen Hashmap und Hashtable

Verfahrenskörper

Alles, was nach dem IS-Schlüsselwort kommt, wird als Prozedurkörper bezeichnet. Wir haben die Deklarations-, Ausnahme- und Ausführungsanweisungen im Prozedurkörper. Im Gegensatz zur Funktion wird das Schlüsselwort RETURN in einer Prozedur verwendet, um die Ausführung anzuhalten und das Steuerelement an den Aufrufer zurückzugeben.

Eine Prozedur aufrufen

Lassen Sie uns sehen, wie wir eine Prozedur in PL / SQL aufrufen können.

EXEC-Prozedurname (param1, param2 & hellipparamN)

Wir können die Prozeduren ohne Parameter aufrufen, indem wir nur das EXEC-Schlüsselwort und den Prozedurnamen verwenden. Nachdem wir nun wissen, wie wir mit Prozeduren arbeiten können, versuchen wir zu verstehen, wie verschachtelte Blöcke in PL / SQL verwendet werden.

Verschachtelter Block

Ein verschachtelter Block ist nichts anderes als eine Kombination aus einem oder mehreren PL / SQL-Blöcken, um eine bessere Kontrolle über die Ausführung und eine außergewöhnliche Handhabung des Programms zu erhalten.

Hier ist ein einfaches Beispiel für einen verschachtelten Block.

SET SERVEROUTPUT ON SIZE 1000000 DECLARE n_emp_id EMPLOYEES.EMPLOYEE_ID% TYPE: = & emp_id1 BEGIN DECLARE n_emp_id employee.employee_id% TYPE: = & emp_id2 v_name employee.first_name% TYPE BEGIN S_ des Mitarbeiters '|| n_emp_id ||' ist '|| v_name) AUSNAHME, WENN no_data_found THEN DBMS_OUTPUT.PUT_LINE (' Mitarbeiter '|| n_emp_id ||' nicht gefunden ') END END /

Der äußere PL / SQL-Block im obigen Beispiel ist als übergeordneter Block oder einschließender Block bekannt, der innere Block ist andererseits als untergeordneter Block oder eingeschlossener Block bekannt.

Es ist keine gute Idee, die Variablen mit denselben Namen in beiden Blöcken zu verwenden, da während der Ausführung die untergeordnete Blockvariable die übergeordnete Blockvariable überschreibt. Dies geschieht, weil PL / SQL der Variablen in ihrem eigenen Block die erste Priorität einräumt.

Blocketikett

Wir können dieses Problem mit der Blockbezeichnung beheben, mit deren Hilfe wir mithilfe einer Bezeichnung auf Variablen innerhalb von Blöcken verweisen können.

Hier ist ein einfaches Beispiel, um zu zeigen, wie wir eine Blockbezeichnung verwenden können.

 <>ERKLÄREN ... BEGINNEN ... ENDE

Die Verwendung einer Blockbezeichnung hilft, die Lesbarkeit des Codes zu verbessern, eine bessere Kontrolle zu erlangen und Verweise auf die Blöcke zu erstellen. Nachdem wir nun wissen, wie wir mit verschachtelten Blöcken arbeiten können, versuchen wir zu verstehen, wie die IF-Anweisung in PL / SQL funktioniert.

IF-Anweisung

PL / SQL verfügt über drei IF STATEMENTS

  • WENN, DANN - Es ist die einfachste WENN STATEMENT, wenn die Bedingung wahr ist, werden die Anweisungen ausgeführt. Wenn die Bedingung falsch ist, tut sie nichts.

  • WENN-DANN-SONST - Hierbei wird die ELSE-Klausel für eine alternative Folge von Anweisungen hinzugefügt.

  • IF-THEN-ELSEIF - Es ermöglicht uns, mehrere Testbedingungen in einer Sequenz auszuführen.

IF-THEN-Syntax

IF-Bedingung THEN sequence_of_statements END IF

IF-THEN-ELSE-Syntax

IF-Bedingung THEN sequence_of_if_statements ELSE sequence_of_else_statements END IF

IF-THEN-ELSEIF-Syntax

IF-Bedingung1 THEN-Sequenz_der_Anweisungen1 ELSIF-Bedingung2 DANN Sequenz_der_Anweisungen2 ELSE-Sequenz_der_Anweisungen3 ENDE IF

Nachdem wir mit der IF-Anweisung fertig sind, sehen wir uns die CASE-Anweisung in PL / SQL an.

CASE-Erklärung

Die CASE-Anweisung hilft im Wesentlichen bei der Ausführung einer Folge von Anweisungen basierend auf einem Selektor. Ein Selektor kann in diesem Fall alles sein, es kann eine Variable, eine Funktion oder ein einfacher Ausdruck sein. Hier ist ein einfaches Beispiel, um die Syntax der CASE-Anweisung in PL / SQL zu zeigen.

[<>] FALL [WAHR | Selektor] WHEN expression1 THEN sequence_of_statements1 WHEN expression2 THEN sequence_of_statements2 ... WHEN expressionN THEN sequence_of_statementsN [ELSE sequence_of_statementsN + 1] END CASE [label_name]

In der obigen Syntax steht nach dem Schlüsselwort CASE der Selektor. PL / SQL wertet den Selektor nur einmal aus, um festzustellen, welche Anweisung ausgeführt werden muss.

Dem Selektor folgt das Schlüsselwort WHEN. Wenn der Ausdruck den Selektor erfüllt, wird die entsprechende Anweisung nach dem Schlüsselwort THEN ausgeführt.

Nachdem wir nun wissen, wie wir eine CASE-Anweisung verwenden können, versuchen wir zu verstehen, wie wir die Schleifenanweisungen in PL / SQL verwenden.

Schleifenanweisung

Eine Schleifenanweisung in PL / SQL ist eine iterative Anweisung, mit der Sie eine Folge von Anweisungen mehrmals ausführen können. Hier ist ein einfaches Beispiel, um die Syntax einer Schleifenanweisung in PL / SQL zu zeigen.

LOOP sequence_of_statements END LOOP

Zwischen dem Schlüsselwort LOOP und END LOOP muss mindestens eine ausführbare Anweisung stehen.

Schleife mit EXIT-Anweisung

Mit den Anweisungen EXIT und EXIT when können Sie die Schleife verlassen. Die Anweisung EXIT WHEN beendet die Schleife bedingt, während EXIT die Ausführung bedingungslos beendet.

LOOP ... BEENDEN, WENN Bedingung END LOOP

Loop-Label

Eine Schleifenbezeichnung wird verwendet, um den Namen der Schleifenzählervariablen zu qualifizieren, wenn sie in einer verschachtelten Schleife verwendet wird. Es folgt die Syntax eines Loop-Labels.

 <>LOOP sequence_of_statements END LOOP label

Nachdem wir nun wissen, wie wir die Schleifenanweisungen verwenden können, schauen wir uns zum besseren Verständnis die while-Schleifenanweisungen an.

While-Schleifenanweisung

Wir können die WHILE-Schleifenanweisung verwenden, wenn die Anzahl der Ausführungen erst definiert wird, wenn die Ausführung beginnt. Die folgende Syntax wird für eine WHILE-Schleifenanweisung in PL / SQL verwendet.

WHILE Bedingung LOOP sequence_of_statements END LOOP

Die Bedingung in der Syntax ist ein boolescher Wert oder Ausdruck, der entweder TRUE, FALSE oder NULL ergibt. Wenn die Bedingung TRUE ist, werden die Anweisungen ausgeführt. Wenn sie FALSE ist, wird die Ausführung gestoppt und die Steuerung geht zur nächsten ausführbaren Anweisung.

Unterschied zwischen veränderlich und unveränderlich

Nachdem wir nun wissen, wie wir eine WHILE-Schleifenanweisung verwenden können, werfen wir einen Blick auf die FOR-Schleifenanweisung.

Für Schleifenanweisung

Eine FOR-Schleifenanweisung in PL / SQL ermöglicht es uns, eine Folge von Anweisungen für eine bestimmte Anzahl von Malen auszuführen. Es folgt die Syntax zur Verwendung der FOR-Schleifenanweisung in PL / SQL

FOR loop_counter IN [REVERSE] lower_bound .. höher_bound LOOP Sequenz_der_Anweisungen END LOOP

PL / SQL erstellt automatisch eine lokale Variable loop_counter mit einem INTEGER-Datentyp für die Schleife, sodass Sie diese nicht explizit deklarieren müssen. Die untere Grenze ... die höhere Grenze ist der Bereich, über den die Schleife iteriert. Außerdem muss mindestens eine ausführbare Anweisung zwischen den Schlüsselwörtern LOOP und END LOOP vorhanden sein.

Nachdem wir nun wissen, wie wir die Schleifenanweisungen in PL / SQL verwenden können, werfen wir einen Blick auf die außergewöhnliche Behandlung in PL / SQL.

Außergewöhnliches Handling

In PL / SQL wird jede Art von Fehler als Ausnahme behandelt. Eine Ausnahme kann als spezielle Bedingung behandelt werden, die den Ausführungsablauf ändern oder ändern kann. In PL / SQL gibt es zwei Arten von Ausnahmen.

  • Systemausnahme - Es wird von der PL / SQL-Laufzeit ausgelöst, wenn ein Fehler erkannt wird.

  • Vom Programmierer definierte Ausnahme - Diese Ausnahmen werden vom Programmierer in einer bestimmten Anwendung definiert.

Eine Ausnahme definieren

Eine Ausnahme in PL / SQL muss deklariert werden, bevor sie ausgelöst werden kann. Wir können die Ausnahme mit dem Schlüsselwort EXCEPTION definieren, wie wir es im folgenden Beispiel getan haben.

EXCEPTION_NAME EXCEPTION

Um eine Ausnahme auszulösen, verwenden wir das Schlüsselwort RAISE.

RAISE EXCEPTION_NAME

Ich hoffe, dieser Artikel hat Ihnen dabei geholfen, Ihr Wissen aufzuwerten. Weitere Informationen zu SQL oder Datenbanken finden Sie in unserer umfassenden Leseliste hier: .

Wenn Sie eine strukturierte Schulung zu MySQL erhalten möchten, lesen Sie unsere Dies beinhaltet ein von Lehrern geführtes Live-Training und praktische Projekterfahrung. Diese Schulung hilft Ihnen dabei, MySQL gründlich zu verstehen und das Thema zu beherrschen.

Hast du eine Frage an uns? Bitte erwähnen Sie es in den Kommentaren von ” PL / SQL-Tutorial Und ich werde mich bei Ihnen melden.