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.

  1. Deklarationsavsnittet
  2. Utförande avsnitt
  3. Undantagshanteringssektion

Bilden nedan illustrerar de olika PL/SQL-blocken och deras sektionsordning.

Blockstruktur

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.

PL/SQL-blocksyntax

DECLARE --optional
    <declarations>

BEGIN   --mandatory
    <executable statements. At least one executable statement is mandatory>

EXCEPTION --optional 
    <exception handles>

END;   --mandatory
/

Notera: 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.

  1. Anonyma block
  2. 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:
  1. Tillvägagångssätt
  2. 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.