Här kommer vi att diskutera Oracle PLSQL-blockstruktur och typer
Vad är PL/SQL
PL/SQL är Oracles egenutvecklade tillägg till SQL som tillåter procedurspråksfunktioner. Den ger alla funktioner i modern mjukvaruteknik som datainkapsling, undantagshantering, informationsdöljning och objektorientering
Varför använda PLSQL
1) Integration med utvecklingsverktyg som Oracle-formulär, Rapporter
2) Flera uttalanden kan grupperas i ett enda plsql-block och skickas till oracle-servern vilket resulterar i mindre nätverkstrafik
3) Modulariserad programutveckling:Dela upp den komplexa logiken/problemet i en uppsättning hanterbara, väldefinierade, logiska moduler och implementera dem med hjälp av block
4) Portabilitet:Eftersom den är inbyggd i Oracle-servern kan den enkelt flyttas
5) Det tillhandahåller processuella språkkontrollstrukturer som if condition, looping
6) Den har förmågan att hantera fel och skapa undantag baserat på det
PLSQL-blockstruktur
Ett plsql-block görs i tre avsnitt Deklarera, körbar och undantag.
DECLARE(Valfritt) – det här avsnittet innehåller variabler, konstanter, markörer och användardefinierade undantag. BEGIN(Obligatoriskt) EXEMPELBAR – det här avsnittet innehåller alla SQL-satser. UNDANTAG (valfritt)- det här avsnittet innehåller felhanterare.END(Obligatorisk); |
Så avsnittet Deklarera och undantag är valfria.
Exempel på blockstruktur
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; /
Viktigt att notera
1) Alla variabler och konstanter definieras i deklarationsavsnittet
2) Placera ett semikolon; i slutet av sql-satsen eller plsql-kontrollsatsen
3) I PL/SQL hanteras alla fel i undantagsblocket.
4) Start och End är obligatoriska satser som anger början och slutet av PL/SQL-blocket.
5) Variabler och konstanter måste deklareras först innan de kan användas.
6) Värden kan tilldelas variabler direkt med hjälp av tilldelningsoperatorn “:=”, med hjälp av en SELECT … INTO-sats eller när den används som OUT- eller IN OUT-parameter från en procedur.
7) Sektionsnyckelord Declare, Begin , undantag följs inte av semikolon
8) End och alla andra plsql-satser kräver ett semikolon för att avsluta satsen
PLSQL-blocktyper
Anonym :Anonyma block är namnlösa block. De deklareras vid den tidpunkt i ansökan där de behöver utföras
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 :Dessa är namn på PLSQL-block som kan acceptera parameter och beräkna någon funktion och returnera den. Det kan lagras 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; /
Procedur :Dessa är namn PLSQL-block som kan acceptera parameter och bearbeta viss information och kan eller kan returnera värden. Det kan lagras 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; /
Skillnad Mellan funktion och procedur
Funktion | Procedur |
Funktionen måste returnera ett värde | Procedur behöver inte |
Syntax | Syntax |
FUNKTIONSnamn (argumentlista …..) Returdatatyp är | PROCEDURnamn (parameterlista…..) |
lokala variabeldeklarationer | är |
Börja | lokala variabeldeklarationer |
körbara satser | BÖRJAN |
Undantag | Körbara uttalanden. |
exekveringshanterare | Undantag. |
Sluta; | undantagshanterare |
slut; | |
Funktionen kan användas i SQL med vissa begränsningar | Procedur kan inte anropas direkt från SQL. |
Oracle PLSQL blocksyntax och riktlinjer
1) Bokstavs- och datumbokstav måste omges av enkla citattecken
2) Placera kommentarer på flera rader mellan /* och */
3) De flesta sql-funktionerna kan användas i PLSQL . Vi har char,date, number-funktioner tillgängliga i PLSQL precis som SQL
4) grupp efter funktion är inte tillgängliga i PLSQL. Det kan endast användas i SQL-satsen i PLSQL
5) Vi bör använda korrekt indrag för att göra koden läsbar
6) Det rekommenderas att skriva DML-sats i versaler, PLSQL-sökord, datatyper i versaler och sätta identifierare och parameter i gemener för bättre läsbarhet och underhåll
Relaterade länkar
Oracle PLSQL-dokumentation
De vanligaste 25 Oracle PlSQL-intervjufrågorna
Oracle sql och plsql
hur man skriver sql-frågor