PL/ SQL Block: STRUKTUR, Syntax, ANONYMT Exempel
Vad รคr PL/SQL-block?
I PL/SQL exekveras koden inte i enkelradsformat, utan den exekveras alltid genom att gruppera koden i ett enda element som kallas Blocks. I den hรคr handledningen kommer du att lรคra dig om dessa block.
Block innehรฅller bรฅde PL/SQL och SQL-instruktioner. Alla dessa instruktioner kommer att exekveras som en helhet snarare รคn att utfรถra en enskild instruktion รฅt gรฅngen.
Blockstruktur
PL/SQL-block har en fรถrdefinierad struktur dรคr koden ska grupperas. Nedan finns olika sektioner av PL/SQL-block.
- Deklarationsavsnittet
- Utfรถrande avsnitt
- Undantagshanteringssektion
Bilden nedan illustrerar de olika PL/SQL-blocken och deras sektionsordning.
Deklarationsavsnitt
Detta รคr den fรถrsta delen av PL/SQL-blocken. Detta avsnitt รคr en valfri del. Detta รคr avsnittet dรคr deklarationen av variabler, markรถrer, undantag, underprogram, pragmainstruktioner och samlingar som behรถvs i blocket kommer att deklareras. Nedan finns nรฅgra fler egenskaper hos denna del.
- Det hรคr avsnittet รคr valfritt och kan hoppas รถver om inga deklarationer behรถvs.
- Detta bรถr vara det fรถrsta avsnittet i ett PL/SQL-block, om det finns.
- Det hรคr avsnittet bรถrjar med nyckelordet "DECLARE" fรถr utlรถsare och anonym blockering. Fรถr andra underprogram kommer detta nyckelord inte att finnas. Istรคllet markerar delen efter definitionen av underprogramnamnet deklarationsdelen.
- Detta avsnitt ska alltid fรถljas av utfรถrande avsnitt.
Avrรคttningsavdelning
Exekveringsdelen รคr den huvudsakliga och obligatoriska delen som faktiskt exekverar koden som รคr skriven inuti den. Sedan PL / SQL fรถrvรคntar sig de kรถrbara satserna frรฅn detta block. Detta kan inte vara ett tomt block, dvs det bรถr ha minst en giltig kรถrbar kodrad. Nedan finns nรฅgra fler egenskaper hos denna del.
- Detta kan innehรฅlla bรฅde PL/SQL-kod och SQL-kod.
- Detta kan innehรฅlla ett eller flera block inuti det som ett kapslat block.
- Det hรคr avsnittet bรถrjar med nyckelordet 'BEGIN'.
- Det hรคr avsnittet ska fรถljas antingen av "SLUT" eller avsnittet om undantagshantering (om det finns)
Sektion fรถr undantagshantering
Undantaget รคr oundvikligt i programmet som intrรคffar vid kรถrning och fรถr att hantera detta Oracle har tillhandahรฅllit en sektion fรถr hantering av undantag i block. Det hรคr avsnittet kan ocksรฅ innehรฅlla PL/SQL-satser. Detta รคr en valfri del av PL/SQL-blocken.
- Det hรคr รคr avsnittet dรคr undantaget i exekveringsblocket hanteras.
- Det hรคr avsnittet รคr den sista delen av PL/SQL-blocket.
- Kontroll frรฅn detta avsnitt kan aldrig รฅtergรฅ till exekveringsblocket.
- Det hรคr avsnittet bรถrjar med nyckelordet "EXCEPTION".
- Detta avsnitt ska alltid fรถljas av nyckelordet 'SLUT'.
Nyckelordet 'END' markerar slutet pรฅ PL/SQL-blocket.
PL/SQL-blocksyntax
Nedan รคr syntaxen fรถr PL/SQL-blockstrukturen.
DECLARE --optional
<declarations>
BEGIN --mandatory
<executable statements. At least one executable statement is mandatory>
EXCEPTION --optional
<exception handles>
END; --mandatory
/
Obs: Ett block ska alltid fรถljas av '/' som skickar informationen till kompilatorn om slutet av blocket.
Typer av PL/SQL-block
PL/SQL-block รคr huvudsakligen av tvรฅ typer.
- Anonyma block
- Namngivna block
Anonyma block
Anonyma block รคr PL/SQL-block som inte har nรฅgra namn tilldelade dem. De mรฅste skapas och anvรคndas i samma session eftersom de inte kommer att lagras pรฅ servern som databasobjekt.
Eftersom de inte behรถver lagras i databasen behรถver de inga kompileringssteg. De skrivs och kรถrs direkt, och kompilering och exekvering sker i en enda process.
Nedan finns nรฅgra fler egenskaper hos anonyma block.
- Dessa block har inget referensnamn specificerat fรถr dem.
- Dessa block bรถrjar med nyckelordet 'DECLARE' eller 'BEGIN'.
- Eftersom dessa block inte har nรฅgot referensnamn kan dessa inte lagras fรถr senare รคndamรฅl. De ska skapas och utfรถras i samma session.
- De kan anropa de andra namngivna blocken, men anrop till anonymt block รคr inte mรถjligt eftersom det inte har nรฅgon referens.
- Det kan ha kapslade block i sig som kan vara namngivna eller anonyma. Den kan ocksรฅ kapslas in i alla block.
- Dessa block kan ha alla tre sektioner av blocket, dรคr exekveringssektionen รคr obligatorisk, de andra tvรฅ sektionerna รคr valfria.
Namngivna block
Namngivna block har ett specifikt och unikt namn fรถr dem. De lagras som databasobjekt pรฅ servern. Eftersom de รคr tillgรคngliga som databasobjekt kan de hรคnvisas till eller anvรคndas sรฅ lรคnge det finns pรฅ servern. Kompileringsprocessen fรถr namngivna block sker separat medan de skapas som databasobjekt.
Nedan finns nรฅgra fler egenskaper hos Namngivna block.
- Dessa block kan anropas frรฅn andra block.
- Blockstrukturen รคr samma som ett anonymt block, fรถrutom att det aldrig bรถrjar med nyckelordet "DECLARE". Istรคllet bรถrjar det med nyckelordet 'CREATE' som instruerar kompilatorn att skapa det som ett databasobjekt.
- Dessa block kan kapslas i andra block. Den kan ocksรฅ innehรฅlla kapslade block.
- Namngivna block รคr i grunden av tvรฅ typer:
- Tillvรคgagรฅngssรคtt
- Funktion
Vi kommer att lรคra oss mer om dessa namngivna block i รคmnena "Procedur" och "Funktion" i senare handledning.
Sammanfattning
Efter denna handledning bรถr du vara medveten om PL/SQL-block och dess typer, olika delar av block och deras anvรคndningsomrรฅden. Den detaljerade beskrivningen av de namngivna PL/SQL-blocken kommer att behandlas i den senare handledningen.


