PL/SQL-blok: STRUCTUUR, syntaxis, ANONIEM Voorbeeld

Wat is PL/SQL-blok?

In PL/SQL wordt de code niet uitgevoerd in het formaat van één regel, maar wordt deze altijd uitgevoerd door de code te groeperen in een enkel element genaamd Blocks. In deze tutorial ga je meer te weten komen over deze blokken.

Blokken bevatten zowel PL/SQL als SQL-instructie. Al deze instructies worden als geheel uitgevoerd in plaats van dat er één instructie tegelijk wordt uitgevoerd.

Blokstructuur

PL/SQL-blokken hebben een vooraf gedefinieerde structuur waarin de code moet worden gegroepeerd. Hieronder staan ​​verschillende secties van PL/SQL-blokken.

  1. Declaratiesectie
  2. Uitvoering sectie
  3. Sectie Uitzonderingafhandeling

De onderstaande afbeelding illustreert de verschillende PL/SQL-blokken en hun sectievolgorde.

Blokstructuur

Verklaring sectie

Dit is het eerste gedeelte van de PL/SQL-blokken. Dit gedeelte is een optioneel onderdeel. Dit is de sectie waarin de declaratie van variabelen, cursors, uitzonderingen, subprogramma's, pragma-instructies en verzamelingen die nodig zijn in het blok, wordt gedeclareerd. Hieronder staan ​​nog enkele kenmerken van dit onderdeel.

  • Deze specifieke sectie is optioneel en kan worden overgeslagen als er geen aangiften nodig zijn.
  • Dit zou de eerste sectie in een PL/SQL-blok moeten zijn, indien aanwezig.
  • Deze sectie begint met het trefwoord 'DECLARE' voor triggers en anonieme blokkering. Voor andere subprogramma's zal dit trefwoord niet aanwezig zijn. In plaats daarvan markeert het gedeelte na de definitie van de subprogrammanaam de declaratiesectie.
  • Dit gedeelte moet altijd worden gevolgd door het uitvoeringsgedeelte.

Uitvoeringssectie

Het uitvoeringsgedeelte is het belangrijkste en verplichte onderdeel dat daadwerkelijk de code uitvoert die erin is geschreven. Sinds de PL / SQL verwacht de uitvoerbare instructies van dit blok. Dit kan geen leeg blok zijn, dat wil zeggen dat het minstens één geldige uitvoerbare coderegel moet bevatten. Hieronder staan ​​nog enkele kenmerken van dit onderdeel.

  • Dit kan zowel PL/SQL-code als SQL-code bevatten.
  • Dit kan een of meerdere blokken bevatten als genest blok.
  • Deze sectie begint met het trefwoord 'BEGIN'.
  • Deze sectie moet worden gevolgd door de sectie 'END' of Uitzonderingafhandeling (indien aanwezig)

Sectie Afhandeling van uitzonderingen

De uitzondering is onvermijdelijk in het programma dat tijdens runtime optreedt en om dit af te handelen Oracle heeft een sectie voor het afhandelen van uitzonderingen in blokken geleverd. Deze sectie kan ook PL/SQL-instructies bevatten. Dit is een optionele sectie van de PL/SQL-blokken.

  • Dit is de sectie waar de uitzondering die in het uitvoeringsblok wordt gegenereerd, wordt afgehandeld.
  • Deze sectie is het laatste deel van het PL/SQL-blok.
  • Controle vanuit deze sectie kan nooit terugkeren naar het uitvoeringsblok.
  • Deze sectie begint met het trefwoord 'UITZONDERING'.
  • Dit gedeelte moet altijd worden gevolgd door het zoekwoord 'END'.

Het trefwoord 'END' markeert het einde van het PL/SQL-blok.

PL/SQL-bloksyntaxis

Hieronder vindt u de syntaxis van de PL/SQL-blokstructuur.

PL/SQL-bloksyntaxis

DECLARE --optional
    <declarations>

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

EXCEPTION --optional 
    <exception handles>

END;   --mandatory
/

Opmerking: Een blok moet altijd worden gevolgd door '/', waarmee de informatie over het einde van het blok naar de compiler wordt gestuurd.

Soorten PL/SQL-blok

Er zijn hoofdzakelijk twee typen PL/SQL-blokken.

  1. Anonieme blokken
  2. Genoemde blokken

Anonieme blokken

Anonieme blokken zijn PL/SQL-blokken waaraan geen naam is toegewezen. Ze moeten in dezelfde sessie worden gemaakt en gebruikt, omdat ze niet als databaseobjecten op de server worden opgeslagen.

Omdat ze niet in de database hoeven te worden opgeslagen, zijn er geen compilatiestappen nodig. Ze worden rechtstreeks geschreven en uitgevoerd, en het compileren en uitvoeren gebeurt in één proces.

Hieronder staan ​​nog enkele kenmerken van anonieme blokken.

  • Voor deze blokken is geen referentienaam opgegeven.
  • Deze blokken beginnen met het trefwoord 'DECLARE' of 'BEGIN'.
  • Omdat deze blokken geen referentienaam hebben, kunnen ze niet worden opgeslagen voor later gebruik. Ze worden in dezelfde sessie gemaakt en uitgevoerd.
  • Ze kunnen de andere benoemde blokken oproepen, maar een oproep naar een anoniem blok is niet mogelijk omdat het geen enkele referentie heeft.
  • Er kan een genest blok in zitten dat een naam of anoniem kan hebben. Het kan ook in elk blok worden genest.
  • Deze blokken kunnen alle drie de secties van het blok bevatten, waarbij de uitvoeringssectie verplicht is, de andere twee secties zijn optioneel.

Genoemde blokken

Benoemde blokken hebben een specifieke en unieke naam. Ze worden opgeslagen als databaseobjecten op de server. Omdat ze beschikbaar zijn als databaseobjecten, kunnen ze worden verwezen of gebruikt zolang ze op de server aanwezig zijn. Het compilatieproces voor benoemde blokken gebeurt afzonderlijk terwijl ze als databaseobjecten worden gemaakt.

Hieronder staan ​​nog enkele kenmerken van benoemde blokken.

  • Deze blokken kunnen vanuit andere blokken worden opgeroepen.
  • De blokstructuur is hetzelfde als een anoniem blok, behalve dat het nooit begint met het trefwoord 'DECLARE'. In plaats daarvan begint het met het sleutelwoord 'CREATE', wat de compiler de opdracht geeft om het als databaseobject te maken.
  • Deze blokken kunnen in andere blokken worden genest. Het kan ook geneste blokken bevatten.
  • Benoemde blokken zijn in principe van twee typen:
  1. Procedure
  2. Functie

We zullen later in de tutorial meer leren over deze benoemde blokken in de onderwerpen ‘Procedure’ en ‘Functie’.

Samenvatting

Na deze tutorial zou u op de hoogte moeten zijn van PL/SQL-blokken en de typen, verschillende secties van blokken en hun gebruik. De gedetailleerde beschrijving van de genoemde PL/SQL-blokken wordt behandeld in de latere tutorial.