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?
- Blokstructuren in PL / SQL
- PL / SQL-variabelen
- Functie in PL / SQL
- PL / SQL-procedure
- Genest blok
- IF-verklaring
- CASE-verklaring
- Loop-instructie
- Uitzonderlijke handling
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 .
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 voeren | PL / 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 gedaan | PL / SQL definieert hoe dingen moeten worden gedaan |
Het voert een enkele instructie uit | Het voert een blok met instructies tegelijk uit. |
SQL wordt voornamelijk gebruikt om de gegevens te manipuleren | PL / SQL daarentegen wordt gebruikt om applicaties te maken |
Het mag geen PL / SQL-code bevatten | Omdat 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.