PL / SQL-zelfstudie: alles wat u moet weten over PL / SQL



PL / SQL-tutorial behandelt alle gedetailleerde uitleg van alle noodzakelijke concepten die nodig zijn om de PL / SQL-programmering onder de knie te krijgen met verschillende voorbeelden

PL / SQL is een proceduretaal die de tekortkomingen overwint Structured Query Language . Het is een uitbreiding van SQL en we kunnen zelfs SQL-queries probleemloos gebruiken in elke PL / SQL-applicatie of -programma. In deze PL / SQL-tutorial zullen we de basisconcepten van PL / SQL in detail doornemen. In dit artikel worden de volgende onderwerpen behandeld.

Wat is PL / SQL?

Het staat voor procedurele taaluitbreiding op het Structured Query Language . Oracle heeft PL / SQL gemaakt dat enkele beperkingen van SQL uitbreidt om een ​​uitgebreidere oplossing te bieden voor het bouwen van bedrijfskritische applicaties die op het orakel draaien .





logo-pl / sql zelfstudie - edureka

Kenmerken

  • PL / SQL biedt de functionaliteit van een proceduretaal zoals besluitvorming, iteratie, enz.

  • Met behulp van een enkele opdracht kan PL / SQL een aantal queries uitvoeren.



  • We kunnen ook PL / SQL-eenheden hergebruiken, zoals functies, triggers, procedures, enz. Die na het maken in de database zijn opgeslagen.

    datagedreven raamwerk in selenium webdriver voorbeeld
  • PL / SQL heeft ook een uitzonderingsverwerkingsblok dat de uitzonderingen in PL / SQL afhandelt.

  • Uitgebreide foutcontrole is ook mogelijk met PL / SQL



  • De applicaties die in PL / SQL zijn geschreven, zijn overdraagbaar naar andere hardware en het geleverde oracle moet operationeel zijn.

PL / SQL versus SQL

SQL PL / SQL
SQL is een enkele query die wordt gebruikt om DDL- en DML-bewerkingen uit te voerenPL / SQL is een codeblok dat wordt gebruikt om een ​​volledig programma of procedure / functie, enz. Te definiëren
Het definieert niet echt hoe dingen moeten worden gedaan, maar definieert eerder wat er moet worden gedaanPL / SQL definieert hoe dingen moeten worden gedaan
Het voert een enkele instructie uitHet voert een blok met instructies tegelijk uit.
SQL wordt voornamelijk gebruikt om de gegevens te manipulerenPL / SQL daarentegen wordt gebruikt om applicaties te maken
Het mag geen PL / SQL-code bevattenOmdat het een SQL-extensie is, kan deze SQL-code erin bevatten

Blokstructuren in PL / SQL

PL / SQL organiseert de code doorgaans in blokken. Het codeblok zonder naam staat bekend als een anoniem blok. Het staat bekend als het anonieme blok omdat het niet wordt opgeslagen in de Oracle-database. Laten we eens kijken naar een anoniem blok in PL / SQL.

[DECLARE] declaratie-instructies [BEGIN] uitvoeringsinstructies [EXCEPTION] uitzonderingsinstructies END /

Als we naar het bovenstaande diagram kijken, kunnen we zien dat de blokstructuur is verdeeld in vier delen, namelijk declaratie, begin, uitzondering en einde. Laten we proberen te begrijpen hoe de blokstructuur werkt in PL / SQL. Van al deze secties is de uitvoeringssectie verplicht en alle rest is optioneel.

  • VERKLAREN trefwoord wordt gebruikt voor de declaratiesectie wordt gebruikt om gegevenstypen en structuren zoals variabelen, functies, enz.

  • BEGINNEN trefwoord wordt gebruikt voor de uitvoeringssectie. Het is verplicht en bevat alle instructies die moeten worden uitgevoerd. In dit blok wordt de bedrijfslogica gedefinieerd, we kunnen zowel procedurele als SQL-instructies in dit blok gebruiken.

  • De UITZONDERING trefwoord wordt gebruikt voor de uitzonderingssectie. Het bevat alle uitzonderingsverklaringen.

  • EINDE trefwoord markeert het einde van het blok en de achterwaartse schuine streep ‘/’ vertelt de tool die u gebruikt (Oracle Database Tool) om het PL / SQL-blok uit te voeren.

Hier is een eenvoudig voorbeeld om te laten zien hoe we de PL / SQL-code kunnen gebruiken.

BEGIN NULL END /

Nu we weten hoe de blokstructuur werkt in PL / SQL, laten we de verschillende aspecten van PL / SQL begrijpen, zoals het declareren, benoemen en toewijzen van waarden aan de variabelen.

PL / SQL-variabelen

De variabele in PL / SQL is in feite een naam die varieert of een tijdelijke opslaglocatie die een bepaald gegevenstype ondersteunt. Laten we eens kijken hoe we de variabelen in een PL / SQL-programma kunnen gebruiken.

Variabele naamgevingsregels

PL / SQL volgt de volgende regels voor het benoemen van variabelen.

  • De variabele mag niet langer zijn dan 31 tekens

  • De naam van de variabele moet beginnen met een ASCII-teken. Aangezien PL / SQL hoofdlettergevoelig is, zijn een hoofdletter en een kleine letter verschillende variabelen.

  • Na het eerste teken moet er een speciaal teken ($, _) of een willekeurig cijfer zijn.

Naamgevingsconventies

Gebruik de volgende naamgevingsconventies die hieronder worden vermeld om de variabelen te gebruiken.

Voorvoegsel Data type
v_VARCHAR2
n_AANTAL
t_TAFEL
r_RIJ
d_DATUM
b_BOOLEAN

Verklaring

Laten we eens proberen te begrijpen hoe variabeledeclaratie wordt gedaan in PL / SQL

De declaratie bevat de variabelenaam gevolgd door het gegevenstype en gescheiden door een puntkomma. Hieronder volgt een voorbeeld om te laten zien hoe u een variabele in PL / SQL kunt declareren.

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

U kunt ook de lengte van het datatype toevoegen, zoals we in het bovenstaande voorbeeld hebben gedaan.

Ankers

Het anker verwijst in feite naar het gebruik van het% TYPE-sleutelwoord dat een variabele declareert met het gegevenstype dat is gekoppeld aan het gegevenstype van een bepaalde kolom in een tabel.

Bekijk een voorbeeld om dit te begrijpen. Stel dat we een tafel MEDEWERKERS hebben, dan kunnen we de ankers op de volgende manier gebruiken.

VERKLAREN v_naam NAAM WERKNEMER% TYPE n_age WERKNEMER.AGE% TYPE BEGIN NULL EINDE /

Toewijzing

Variabele toewijzing is vrij eenvoudig, we kunnen de toewijzingsoperator gebruiken om waarden aan een variabele toe te wijzen. Het volgende voorbeeld laat zien hoe we waarden aan een variabele kunnen toewijzen.

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

Initialisatie

We kunnen ook een waarde voor de variabele initialiseren in de declaratiesectie. Het volgende voorbeeld laat zien hoe we waarden naar een variabele kunnen initialiseren.

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

Nu we weten hoe we met de variabelen kunnen werken, gaan we proberen te begrijpen hoe we functies in PL / SQL gaan gebruiken.

Functie in PL / SQL

Een functie in PL / SQL is in feite een genoemd blok dat een waarde retourneert. Het is ook bekend als een subroutine of een subprogramma, de volgende syntaxis laat zien hoe we functies in PL / SQL kunnen gebruiken.

CREATE [OR REPLACE] FUNCTION functienaam [(parameter_1 [IN] [OUT] data_type, parameter_2 [IN] [OUT] data_type, parameter_N [IN] [OUT] data_type] RETURN return_data_type IS BEGIN statements return return_data_type EXCEPTION END /

Allereerst moet u een functienaam opgeven na het trefwoord. De functienaam moet beginnen met een werkwoord. Een functie kan geen, een of meer parameters hebben die we specificeren in parameters. We moeten het gegevenstype van elke parameter expliciet specificeren, en dan komt de modus die een van de volgende kan hebben.

  • IN - De IN-parameter is een alleen-lezen parameter.

  • UIT - Het is een alleen-schrijven parameter

  • IN UIT - De IN OUT-parameter is zowel een lees-schrijfparameter.

Hier is een eenvoudig voorbeeld om te laten zien hoe we functies in PL / SQL gebruiken.

FUNCTIE MAKEN OF VERVANGEN try_parse (iv_getal IN VARCHAR2) RETOURNUMMER IS BEGIN RETURN naar_getal (iv_getal) UITZONDERING WANNEER anderen DAN RETURN NULL END

Een functie aanroepen

Laten we proberen de functie die we in het volgende voorbeeld hebben gemaakt in een anoniem blok aan te roepen.

SET SERVEROUTPUT OP GROOTTE 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_x) DBMS_OUTPUT.PUT_LINE (n_x) n_y) DBMS_OUTPUT.PUT_LINE (n_z) END /

We kunnen de functie ook aanroepen in een SELECT-instructie. Nu we weten hoe we functies in PL / SQL kunnen gebruiken, gaan we proberen te begrijpen hoe we werken met procedures in PL / SQL.

PL / SQL-procedure

Een procedure is in feite een blok dat een specifieke taak uitvoert. Met behulp van een procedure kunnen we complexe bedrijfslogica verpakken of inkapselen en deze hergebruiken in zowel de applicatie- als de databaselaag.

Laten we een eenvoudig voorbeeld bekijken om te begrijpen hoe de procedure werkt in PL / SQL

CREËER OF VERVANG PROCEDURE adjust_salary (in_employee_id IN EMPLOYEES.EMPLOYEE_ID% TYPE, in_percent IN NUMBER) IS BEGIN - update werknemer salaris UPDATE werknemers SET salaris = salaris + salaris * in_percent / 100 WHERE employee_id = in_employee_id END

In het bovenstaande voorbeeld hebben we twee parameters: de procedure past het salaris aan met een bepaald percentage en het UPDATE-trefwoord werkt de waarde bij in de salarisinformatie.

Procedure koptekst

Het gedeelte vóór het trefwoord IS wordt de procedurekop genoemd. Hieronder volgen enkele tips waarmee u vertrouwd moet zijn bij het werken met procedures.

  • schema - Het is de optionele naam van het schema waartoe de procedure behoort.

  • naam - De naam van de procedure die met een werkwoord moet beginnen.

  • parameters - Het is de optionele lijst met parameters.

  • AUTHID - Het bepaalt of de procedure wordt uitgevoerd met het privilege van de huidige gebruiker of de oorspronkelijke eigenaar van de procedure.

Procedure lichaam

Alles wat na het IS-sleutelwoord komt, wordt de procedure-body genoemd. We hebben de verklaringen, uitzonderingen en uitvoeringsverklaringen in de procedure body. In tegenstelling tot de functie wordt het trefwoord RETURN in een procedure gebruikt om de uitvoering te stoppen en de controle terug te geven aan de beller.

Een procedure oproepen

Laten we eens kijken hoe we een procedure in PL / SQL kunnen aanroepen.

EXEC procedure_name (param1, param2 & hellipparamN)

We kunnen de procedures zonder parameters aanroepen door alleen het EXEC-sleutelwoord en de procedurenaam te gebruiken. Nu we weten hoe we met procedures kunnen werken, gaan we proberen te begrijpen hoe geneste blokken worden gebruikt in PL / SQL.

Genest blok

Een genest blok is niets anders dan een combinatie van een of meer PL / SQL-blokken om betere controle te krijgen over de uitvoering en uitzonderlijke afhandeling van het programma.

Hier is een eenvoudig voorbeeld van een genest blok.

SERVEROUTPUT INSTELLEN OP SIZE 1000000 DECLARE n_emp_id WERKNEMER.EMPLOYEE_ID% TYPE: = & emp_id1 BEGIN DECLARE n_emp_id medewerkers.employee_id% TYPE: = & emp_id2 v_naam medewerkers.first_name% TYPE BEGIN SELECT_Pid_medewerkers. van werknemer '|| n_emp_id ||' is '|| v_name) UITZONDERING WANNEER geen_data_ gevonden DAN DBMS_OUTPUT.PUT_LINE (' Werknemer '|| n_emp_id ||' niet gevonden ') END END /

Het buitenste PL / SQL-blok in het bovenstaande voorbeeld staat bekend als het bovenliggende blok of het omsluitende blok, het binnenste blok staat daarentegen bekend als het kindblok of het ingesloten blok.

Het is geen goed idee om de variabelen met dezelfde naam in beide blokken te gebruiken, omdat tijdens de uitvoering de onderliggende blokvariabele de bovenliggende blokvariabele zal overschrijven. Het gebeurt omdat PL / SQL de eerste prioriteit geeft aan de variabele in zijn eigen blok.

Label blokkeren

We kunnen dit probleem oplossen met het bloklabel dat ons helpt om met behulp van een label naar variabelen in blokken te verwijzen.

Hier is een eenvoudig voorbeeld om te laten zien hoe we een bloklabel kunnen gebruiken.

 <>VERKLAREN ... BEGIN ... EINDE

Het gebruik van een bloklabel helpt om de leesbaarheid van de code te verbeteren, betere controle te krijgen en verwijzingen naar de blokken te maken. Nu we weten hoe we met geneste blokken kunnen werken, gaan we proberen te begrijpen hoe de IF STATEMENT werkt in PL / SQL.

IF-verklaring

PL / SQL heeft drie IF-STATEMENTS

  • ALS DAN - Het is de eenvoudigste IF STATEMENT als de voorwaarde waar is, de instructies worden uitgevoerd, als de voorwaarde onwaar is, doet het niets.

  • ALS DAN ANDERS - Hierin wordt de ELSE-clausule toegevoegd voor een alternatieve reeks instructies.

  • ALS-DAN ELSEIF - Het stelt ons in staat om meerdere testcondities achter elkaar uit te voeren.

ALS-DAN syntaxis

ALS voorwaarde THEN sequence_of_statements END IF

ALS-DAN-ELSE Syntax

ALS voorwaarde THEN sequence_of_if_statements ELSE sequence_of_else_statements END IF

IF-THEN-ELSEIF Syntax

IF condition1 THEN sequence_of_statements1 ELSIF condition2 THEN sequence_of_statements2 ELSE sequence_of_statements3 END IF

Nu we klaar zijn met de IF STATEMENT, laten we eens kijken naar de CASE-instructie in PL / SQL.

CASE-verklaring

De CASE-instructie helpt in feite bij het uitvoeren van een reeks instructies op basis van een selector. Een selector kan in dit geval van alles zijn, het kan een variabele, functie of een eenvoudige uitdrukking zijn. Hier is een eenvoudig voorbeeld om de syntaxis van de CASE-instructie in PL / SQL te tonen.

[<>] CASE [WAAR | selector] WHEN expression1 THEN sequence_of_statements1 WHEN expression2 THEN sequence_of_statements2 ... WHEN expressionN THEN sequentie_van_statementsN [ELSE sequentie_van_statementsN + 1] END CASE [label_name]

In de bovenstaande syntaxis komt na het trefwoord CASE de selector. PL / SQL evalueert de selector slechts één keer om te bepalen welke instructie moet worden uitgevoerd.

Gevolgd door de selector is het WHEN-trefwoord. Als de uitdrukking voldoet aan de selector, wordt de overeenkomstige instructie na het THEN-sleutelwoord uitgevoerd.

Nu we weten hoe we een CASE-instructie kunnen gebruiken, laten we proberen te begrijpen hoe we de lus-instructies in de PL / SQL zullen gebruiken.

Loop-instructie

Een lusinstructie in PL / SQL is een iteratieve instructie waarmee u een reeks instructies meerdere keren kunt uitvoeren. Hier is een eenvoudig voorbeeld om de syntaxis van een lusinstructie in PL / SQL te tonen.

LOOP sequence_of_statements END LOOP

Er moet ten minste één uitvoerbare instructie tussen het LOOP- en END LOOP-sleutelwoord staan.

Loop met EXIT-instructie

Met de EXIT en EXIT when-instructies kunt u de lus verlaten. EXIT WHEN-instructie beëindigt de lus voorwaardelijk, terwijl EXIT de uitvoering onvoorwaardelijk beëindigt.

LOOP ... EXIT WHEN conditie END LOOP

Lus Label

Een luslabel wordt gebruikt om de naam van de lusteller-variabele te kwalificeren bij gebruik in een geneste lus. Hieronder volgt de syntaxis van een luslabel.

 <>LOOP sequence_of_statements END LOOP label

Nu we weten hoe we de lus-instructies kunnen gebruiken, laten we de while-lus-instructies eens bekijken voor een beter begrip.

While Loop-instructie

We kunnen de WHILE-lusinstructie gebruiken als het aantal uitvoeringen pas is gedefinieerd als de uitvoering begint. De volgende syntaxis wordt gebruikt voor een WHILE-lusinstructie in PL / SQL.

WHILE voorwaarde LOOP sequence_of_statements END LOOP

De voorwaarde in de syntaxis is een booleaanse waarde of expressie die resulteert in WAAR, ONWAAR of NULL. Als de voorwaarde TRUE is, zullen de instructies worden uitgevoerd. Als het FALSE is, stopt de uitvoering en gaat de besturing naar de volgende uitvoerbare instructie.

Nu we weten hoe we een WHILE-lusinstructie kunnen gebruiken, laten we eens kijken naar de FOR-lusinstructie.

For Loop-instructie

Met een FOR-lusinstructie in PL / SQL kunnen we een reeks instructies voor een bepaald aantal keren uitvoeren. Hieronder volgt de syntaxis voor het gebruik van de FOR-lusinstructie in PL / SQL

FOR loop_counter IN [REVERSE] lower_bound .. hoger_bound LOOP sequence_of_statements END LOOP

PL / SQL maakt automatisch een lokale variabele loop_counter met een INTEGER-gegevenstype voor de lus, zodat u deze niet expliciet hoeft te declareren. De lowerbound..higherbound is het bereik waarover de lus zich herhaalt. Bovendien moet u ten minste één uitvoerbare instructie hebben tussen de trefwoorden LOOP en END LOOP.

Nu we weten hoe we de lusinstructies in PL / SQL kunnen gebruiken, laten we eens kijken naar uitzonderlijke afhandeling in PL / SQL.

Uitzonderlijke handling

In PL / SQL wordt elke fout als uitzondering behandeld. Een uitzondering kan worden behandeld als een speciale voorwaarde die de uitvoeringsstroom kan wijzigen of wijzigen. In PL / SQL zijn er twee soorten uitzonderingen.

  • Systeemuitzondering - Het wordt verhoogd door de PL / SQL-runtime wanneer het een fout detecteert.

  • Door programmeur gedefinieerde uitzondering - Deze uitzonderingen worden gedefinieerd door de programmeur in een specifieke applicatie.

Een uitzondering definiëren

Een uitzondering in PL / SQL moet worden gedeclareerd voordat deze kan worden geactiveerd. We kunnen de uitzondering definiëren met het trefwoord EXCEPTION, zoals we hebben gedaan in het onderstaande voorbeeld.

komkommer java selenium webdriver voorbeeld
EXCEPTION_NAME EXCEPTION

Om een ​​uitzondering op te werpen, gebruiken we het trefwoord RAISE.

RAISE EXCEPTION_NAME

Dus dat ging allemaal over PL / SQL, ik hoop dat dit artikel je heeft geholpen bij het toevoegen van waarde aan je kennis. Voor meer informatie over SQL of databases kunt u hier onze uitgebreide literatuurlijst raadplegen: .

Als je een gestructureerde training over MySQL wilt, bekijk dan onze die wordt geleverd met live training onder leiding van een instructeur en real-life projectervaring. Deze training zal je helpen MySQL diepgaand te begrijpen en je te helpen het onderwerp onder de knie te krijgen.

Heeft u een vraag voor ons? Vermeld het in het opmerkingengedeelte van ' PL / SQL-zelfstudie ”En ik neem contact met je op.