Her vil vi diskutere Oracle PLSQL blokstruktur og typer
Hvad er PL/SQL
PL/SQL er Oracles proprietære udvidelse til SQL, der giver mulighed for proceduresprog. Det giver alle funktionerne i moderne softwareteknologi såsom dataindkapsling, undtagelseshåndtering, informationsskjul og objektorientering
Hvorfor bruge PLSQL
1) Integration med udviklingsværktøjer som Oracle-formularer, rapporter
2) Flere sætninger kan grupperes i en enkelt plsql-blok og sendes til oracle-serveren, hvilket resulterer i mindre netværkstrafik
3) Modulariseret programudvikling:Opdel den komplekse logik/problem i et sæt håndterbare, veldefinerede, logiske moduler og implementer dem ved hjælp af blokke
4) Portabilitet:Da den er hjemmehørende i Oracle-serveren, kan den nemt flyttes
5) Det giver proceduremæssige sprogkontrolstrukturer som if condition, looping
6) Det har evnen til at håndtere fejl og rejse undtagelser baseret på det
PLSQL-blokstruktur
En plsql-blok er lavet i tre sektioner Declar, eksekverbar og undtagelse.
DECLARE(Valgfrit) – dette afsnit indeholder variabler, konstanter, markører og brugerdefinerede undtagelser. BEGIN(Obligatorisk) KØBAR – dette afsnit indeholder alle SQL-sætninger. UNDTAGELSE (valgfrit)- dette afsnit indeholder fejlbehandlerne.END(obligatorisk); |
Så sektionen Erklæring og undtagelse er valgfri.
Eksempel på blokstruktur
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; /
Vigtige punkter at notere ned
1) Alle variabler og konstanter er defineret i deklarationsafsnittet
2) Indsæt et semikolon; i slutningen af sql-sætning eller plsql-kontrolsætning
3) I PL/SQL håndteres alle fejl i Undtagelsesblokken.
4) Start og End er obligatoriske udsagn, der angiver begyndelsen og slutningen af PL/SQL-blokken.
5) Variabler og konstanter skal deklareres først, før de kan bruges.
6) Værdier kan tildeles variabler direkte ved hjælp af ":=" tildelingsoperatoren ved hjælp af en SELECT … INTO-sætning eller når den bruges som OUT- eller IN OUT-parameter fra en procedure.
7) Sektionssøgeord Declare, Begin ,undtagelse er ikke efterfulgt af semikolon
8) End og alle andre plsql-sætninger kræver et semikolon for at afslutte sætningen
PLSQL-bloktyper
Anonym :Anonyme blokke er unavngivne blokke. De erklæres på det tidspunkt i ansøgningen, hvor de skal udføres
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; /
Funktion :Dette er navne PLSQL-blok, der kan acceptere parameter og beregne en funktion og returnere den. Det kan gemmes i Oracle-server eller applikation
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 :Dette er navne PLSQL blok, der kan acceptere parameter og behandle nogle oplysninger og kan eller kan returnere værdier. Det kan gemmes i Oracle-server eller applikation
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; /
Forskel Mellem funktion og procedure
Funktion | Procedure |
Funktionen skal returnere en værdi | Proceduren behøver ikke |
Syntaks | Syntaks |
FUNKTIONSnavn (argumentliste …..) Returdatatype er | PROCEDUREnavn (parameterliste…..) |
lokale variabeldeklarationer | er |
Begynd | lokale variabeldeklarationer |
eksekverbare sætninger | BEGIN |
Undtagelse | Eksekverbare erklæringer. |
udførelsesbehandlere | Undtagelse. |
Afslut; | undtagelsesbehandlere |
slut; | |
Funktion kan bruges i SQL med nogle begrænsninger | Proceduren kan ikke kaldes direkte fra SQL. |
Oracle PLSQL-bloksyntaks og retningslinjer
1) Bogstaver for tegn og dato skal være omgivet af enkelte anførselstegn
2) Indsæt flere linjers kommentarer mellem /* og */
3) De fleste af sql-funktionerne kan bruges i PLSQL . Vi har char,date, number funktion tilgængelig i PLSQL ligesom SQL
4) gruppe efter funktion er ikke tilgængelige i PLSQL. Det kan kun bruges i sql-sætningen i PLSQL
5) Vi bør bruge korrekt indrykning for at gøre koden læsbar
6) Det anbefales at skrive DML-sætning med store bogstaver, PLSQL-nøgleord, datatyper med store bogstaver og sætte identifikatorer og parameter med små bogstaver for bedre læsbarhed og vedligeholdelse
Relaterede links
Oracle PLSQL-dokumentation
De oftest stillede 25 Oracle PlSQL-interviewspørgsmål
Oracle sql og plsql
hvordan man skriver sql-forespørgsler