PL/ SQL-blok: STRUKTUR, Syntaks, ANONYMT Eksempel
Hvad er PL/SQL-blok?
I PL/SQL udfรธres koden ikke i enkeltlinjeformat, men den udfรธres altid ved at gruppere koden i et enkelt element kaldet Blocks. I denne tutorial vil du lรฆre om disse blokke.
Blokke indeholder bรฅde PL/SQL samt SQL instruktion. Alle disse instruktioner vil blive udfรธrt som en helhed i stedet for at udfรธre en enkelt instruktion ad gangen.
Blokstruktur
PL/SQL-blokke har en foruddefineret struktur, hvori koden skal grupperes. Nedenfor er forskellige sektioner af PL/SQL-blokke.
- Erklรฆringsafsnit
- Udfรธrelsessektion
- Undtagelses-Hรฅndtering sektion
Billedet nedenfor illustrerer de forskellige PL/SQL-blokke og deres sektionsrรฆkkefรธlge.
Erklรฆring sektion
Dette er den fรธrste sektion af PL/SQL-blokkene. Dette afsnit er en valgfri del. Dette er afsnittet, hvor deklarationen af โโvariabler, markรธrer, undtagelser, underprogrammer, pragmainstruktioner og samlinger, der er nรธdvendige i blokken, vil blive erklรฆret. Nedenfor er nogle flere karakteristika for denne del.
- Dette sรฆrlige afsnit er valgfrit og kan springes over, hvis der ikke er behov for erklรฆringer.
- Dette bรธr vรฆre den fรธrste sektion i en PL/SQL-blok, hvis den findes.
- Dette afsnit starter med nรธgleordet 'DECLARE' for triggere og anonym blokering. For andre underprogrammer vil dette nรธgleord ikke vรฆre til stede. I stedet markerer delen efter definitionen af โโunderprogramnavnet deklarationsafsnittet.
- Dette afsnit skal altid efterfรธlges af udfรธrelsessektionen.
Udfรธrelsesafdeling
Udfรธrelsesdelen er den vigtigste og obligatoriske del, som faktisk udfรธrer koden, der er skrevet inde i den. Siden PL / SQL forventer, at de eksekverbare sรฆtninger fra denne blok kan ikke vรฆre en tom blok, dvs. den skal have mindst รฉn gyldig eksekverbar kodelinje i sig. Nedenfor er nogle flere karakteristika for denne del.
- Dette kan indeholde bรฅde PL/SQL-kode og SQL-kode.
- Dette kan indeholde en eller flere blokke inde i det som en indlejret blok.
- Dette afsnit starter med sรธgeordet 'BEGIN'.
- Dette afsnit skal efterfรธlges enten af โโ"SLUT" eller afsnittet om undtagelseshรฅndtering (hvis det findes)
Undtagelseshรฅndteringssektion
Undtagelsen er uundgรฅelig i programmet, som opstรฅr under kรธrsel og for at hรฅndtere dette Oracle har leveret en undtagelseshรฅndteringssektion i blokke. Dette afsnit kan ogsรฅ indeholde PL/SQL-sรฆtninger. Dette er en valgfri sektion af PL/SQL-blokkene.
- Dette er den sektion, hvor undtagelsen, der er rejst i udfรธrelsesblokken, hรฅndteres.
- Dette afsnit er den sidste del af PL/SQL-blokken.
- Kontrol fra denne sektion kan aldrig vende tilbage til udfรธrelsesblokken.
- Dette afsnit starter med sรธgeordet 'EXCEPTION'.
- Dette afsnit skal altid efterfรธlges af sรธgeordet 'SLUT'.
Nรธgleordet 'END' markerer slutningen af โโPL/SQL-blokken.
PL/SQL-bloksyntaks
Nedenfor er syntaksen for PL/SQL-blokstrukturen.
DECLARE --optional
<declarations>
BEGIN --mandatory
<executable statements. At least one executable statement is mandatory>
EXCEPTION --optional
<exception handles>
END; --mandatory
/
Bemรฆrk: En blok skal altid efterfรธlges af '/', som sender informationen til compileren om slutningen af โโblokken.
Typer af PL/SQL-blok
PL/SQL-blokke er hovedsageligt af to typer.
- Anonyme blokke
- Navngivne blokke
Anonyme blokke
Anonyme blokke er PL/SQL-blokke, som ikke har nogen navne tildelt dem. De skal oprettes og bruges i samme session, fordi de ikke vil blive gemt pรฅ serveren som databaseobjekter.
Da de ikke behรธver at gemme i databasen, behรธver de ingen kompileringstrin. De skrives og udfรธres direkte, og kompilering og eksekvering sker i en enkelt proces.
Nedenfor er nogle flere karakteristika for anonyme blokke.
- Disse blokke har ikke noget referencenavn angivet for dem.
- Disse blokke starter med nรธgleordet 'DECLARE' eller 'BEGIN'.
- Da disse blokke ikke har noget referencenavn, kan disse ikke gemmes til senere formรฅl. De skal oprettes og udfรธres i samme session.
- De kan kalde de andre navngivne blokke, men opkald til anonym blok er ikke muligt, da det ikke har nogen reference.
- Det kan have indlejret blok i sig, som kan vรฆre navngivet eller anonymt. Det kan ogsรฅ indlejres i alle blokke.
- Disse blokke kan have alle tre sektioner af blokken, hvor udfรธrelsessektionen er obligatorisk, de to andre sektioner er valgfri.
Navngivne blokke
Navngivne blokke har et specifikt og unikt navn for dem. De gemmes som databaseobjekter pรฅ serveren. Da de er tilgรฆngelige som databaseobjekter, kan de henvises til eller bruges, sรฅ lรฆnge det er til stede pรฅ serveren. Kompileringsprocessen for navngivne blokke sker separat, mens de oprettes som databaseobjekter.
Nedenfor er nogle flere karakteristika for navngivne blokke.
- Disse blokke kan kaldes fra andre blokke.
- Blokstrukturen er den samme som en anonym blok, bortset fra at den aldrig starter med nรธgleordet 'DECLARE'. I stedet vil det starte med nรธgleordet 'CREATE', som instruerer compileren til at oprette det som et databaseobjekt.
- Disse blokke kan indlejres i andre blokke. Det kan ogsรฅ indeholde indlejrede blokke.
- Navngivne blokke er grundlรฆggende af to typer:
- Procedure
- Funktion
Vi vil lรฆre mere om disse navngivne blokke i emnerne "Procedure" og "Funktion" i senere selvstudie.
Resumรฉ
Efter denne tutorial skal du vรฆre opmรฆrksom pรฅ PL/SQL-blokke og dens typer, forskellige sektioner af blokke og deres anvendelser. Den detaljerede beskrivelse af de navngivne PL/SQL-blokke vil blive dรฆkket i den senere tutorial.


