Hier zullen we het hebben over Oracle PLSQL-blokstructuur en -typen
Wat is PL/SQL
PL/SQL is Oracle's eigen extensie voor SQL die procedurele taalmogelijkheden mogelijk maakt. Het biedt alle functies van moderne software-engineering, zoals het inkapselen van gegevens, het afhandelen van uitzonderingen, het verbergen van informatie en objectoriëntatie
Waarom PLSQL gebruiken
1) Integratie met ontwikkelingstools zoals Oracle-formulieren, rapporten
2) Meerdere instructies kunnen worden gegroepeerd in één plsql-blok en naar de Oracle-server worden verzonden, wat resulteert in minder netwerkverkeer
3) Gemodulariseerde programma-ontwikkeling:splits de complexe logica/het probleem op in een reeks beheersbare, goed gedefinieerde, logische modules en implementeer deze met behulp van blokken
4) Draagbaarheid:aangezien het native is voor de Oracle-server, kan het gemakkelijk worden verplaatst
5) Het biedt procedurele taalcontrolestructuren zoals if condition, looping
6) Het kan fouten afhandelen en op basis daarvan uitzonderingen maken
PLSQL-blokstructuur
Een plsql-blok wordt gemaakt in drie secties Declare, executable en exception.
VERKLAREN (optioneel) – deze sectie bevat variabelen, constanten, cursors en door de gebruiker gedefinieerde uitzonderingen. BEGIN(verplicht) UITVOERBAAR – deze sectie bevat alle SQL-instructies. UITZONDERING (optioneel)- deze sectie bevat de foutafhandelaars.END(verplicht); |
Dus de sectie Declareren en uitzondering zijn optioneel.
Voorbeeld blokstructuur
DECLARE l_number NUMBER; BEGIN l_number := 1; Dbms_output.put_line(l_number); Exception When others then Dbms_output.put_line(‘Exception occurred’); END; /
Belangrijke punten om op te schrijven
1) Alle variabelen en constanten zijn gedefinieerd in de sectie declareren
2) Plaats een puntkomma; aan het einde van sql-statement of plsql control-statement
3) In PL/SQL worden alle fouten afgehandeld in het uitzonderingsblok.
4) Begin en End zijn verplichte uitspraken die het begin en einde van het PL/SQL-blok aangeven.
5) Variabelen en constanten moeten eerst worden gedeclareerd voordat ze kunnen worden gebruikt.
6) Waarden kunnen rechtstreeks aan variabelen worden toegewezen met behulp van de ":="-toewijzingsoperator, door middel van een SELECT … INTO-instructie of bij gebruik als OUT- of IN OUT-parameter van een procedure.
7) Sectie trefwoord Declare, Begin , Exception wordt niet gevolgd door puntkomma
8) End en alle andere plsql-instructies vereisen een puntkomma om de instructie te beëindigen
PLSQL-bloktypen
Anoniem :Anonieme blokken zijn naamloze blokken. Ze worden gedeclareerd op het punt in de toepassing waar ze moeten worden uitgevoerd
DECLARE l_number NUMBER; BEGIN l_number := 1; Dbms_output.put_line(l_number); Exception When others then Dbms_output.put_line(‘Exception occurred’); END; /
Functie :Dit zijn namen PLSQL-blok dat een parameter kan accepteren en een functie kan berekenen en retourneren. Het kan worden opgeslagen op de Oracle-server of -toepassing
Syntax FUNCTION name [(parameter[, parameter, …])] RETURN datatype IS [local declarations] BEGIN executable statements [EXCEPTION exception handlers] END [name]; Example Create or replace function FUNC return number As l_number NUMBER; BEGIN Select count(*) into l_number from emp; return(l_number) END; /
Procedure :Dit zijn namen PLSQL-blok dat parameter kan accepteren en bepaalde informatie kan verwerken en waarden kan of kan retourneren. Het kan worden opgeslagen op de Oracle-server of -toepassing
Syntax PROCEDURE name [(parameter[, parameter, …])] IS [local declarations] BEGIN executable statements [EXCEPTION exception handlers] END [name]; Example Create or replace procedure remove_emp (emp_id number) As BEGIN Delete from emp where employee_id=emp_id; END; /
Verschil tussen functie en procedure
Functie | Procedure |
Functie moet een waarde retourneren | Procedure hoeft niet |
Syntaxis | Syntaxis |
FUNCTIE naam (argumentenlijst …..) Retourgegevenstype is | PROCEDURE naam (parameterlijst…..) |
lokale variabele declaraties | is |
Begin | lokale variabele declaraties |
uitvoerbare instructies | BEGIN |
Uitzondering | Uitvoerbare instructies. |
uitvoerders | Uitzondering. |
Einde; | uitzonderingsbehandelaars |
einde; | |
Functie kan met enige beperking in SQL worden gebruikt | Procedure kan niet rechtstreeks vanuit SQL worden aangeroepen. |
Oracle PLSQL-bloksyntaxis en richtlijnen
1) Letterlijke lettertekens en datums moeten tussen enkele aanhalingstekens staan
2) Plaats meerdere regelopmerkingen tussen /* en */
3) De meeste sql-functies kunnen worden gebruikt in PLSQL. We hebben char, date, number-functie beschikbaar in PLSQL, net als SQL
4) groeperen op functie zijn niet beschikbaar in PLSQL. Het kan alleen worden gebruikt in de sql-instructie in de PLSQL
5) We moeten de juiste inspringing gebruiken om de code leesbaar te maken
6) Het wordt aanbevolen om de DML-verklaring in hoofdletters, PLSQL-trefwoorden, gegevenstypen in hoofdletters te schrijven en ID's en parameters in kleine letters te plaatsen voor een betere leesbaarheid en onderhoud
Verwante links
Oracle PLSQL-documentatie
Meest gestelde 25 Oracle PlSQL-interviewvragen
Oracle sql en plsql
hoe sql-query's te schrijven