PL/ SQL Block: STRUKTUR, Syntaks, ANONYM Eksempel
Hva er PL/SQL-blokk?
I PL/SQL kjรธres ikke koden i enkeltlinjeformat, men den kjรธres alltid ved รฅ gruppere koden i et enkelt element kalt Blocks. I denne opplรฆringen skal du lรฆre om disse blokkene.
Blokker inneholder bรฅde PL/SQL samt SQL-instruksjoner. Alle disse instruksjonene vil bli utfรธrt som en helhet i stedet for รฅ utfรธre en enkelt instruksjon om gangen.
Blokkstruktur
PL/SQL-blokker har en forhรฅndsdefinert struktur der koden skal grupperes. Nedenfor er forskjellige deler av PL/SQL-blokker.
- Erklรฆringsdelen
- Utfรธrelsesseksjonen
- Unntak-Hรฅndtering seksjon
Bildet nedenfor illustrerer de forskjellige PL/SQL-blokkene og deres seksjonsrekkefรธlge.
Erklรฆringsseksjonen
Dette er den fรธrste delen av PL/SQL-blokkene. Denne delen er en valgfri del. Dette er seksjonen der deklarasjonen av variabler, markรธrer, unntak, underprogrammer, pragmainstruksjoner og samlinger som er nรธdvendig i blokken vil bli deklarert. Nedenfor er noen flere kjennetegn ved denne delen.
- Denne spesielle delen er valgfri og kan hoppes over hvis ingen erklรฆringer er nรธdvendig.
- Dette bรธr vรฆre den fรธrste delen i en PL/SQL-blokk, hvis den finnes.
- Denne delen starter med nรธkkelordet 'DECLARE' for utlรธsere og anonym blokkering. For andre underprogrammer vil ikke dette nรธkkelordet vรฆre til stede. I stedet markerer delen etter definisjonen av underprogramnavnet deklarasjonsdelen.
- Denne delen skal alltid fรธlges av utfรธrelsesdelen.
Utfรธrelsesseksjonen
Utfรธrelsesdelen er den viktigste og obligatoriske delen som faktisk utfรธrer koden som er skrevet i den. Siden PL / SQL forventer at de kjรธrbare setningene fra denne blokken kan ikke vรฆre en tom blokk, dvs. den bรธr ha minst รฉn gyldig kjรธrbar kodelinje i seg. Nedenfor er noen flere kjennetegn ved denne delen.
- Denne kan inneholde bรฅde PL/SQL-kode og SQL-kode.
- Denne kan inneholde รฉn eller flere blokker i den som en nestet blokk.
- Denne delen starter med nรธkkelordet 'BEGIN'.
- Denne delen bรธr fรธlges enten av 'END' eller seksjonen for unntakshรฅndtering (hvis den finnes)
Seksjon for unntakshรฅndtering
Unntaket er uunngรฅelig i programmet som oppstรฅr under kjรธring og for รฅ hรฅndtere dette Oracle har gitt en seksjon for hรฅndtering av unntak i blokker. Denne delen kan ogsรฅ inneholde PL/SQL-setninger. Dette er en valgfri del av PL/SQL-blokkene.
- Dette er seksjonen der unntaket som er reist i utfรธrelsesblokken hรฅndteres.
- Denne delen er den siste delen av PL/SQL-blokken.
- Kontroll fra denne delen kan aldri gรฅ tilbake til utfรธrelsesblokken.
- Denne delen starter med nรธkkelordet 'UNNTAK'.
- Denne delen skal alltid etterfรธlges av nรธkkelordet 'END'.
Nรธkkelordet 'END' markerer slutten pรฅ PL/SQL-blokken.
PL/SQL blokksyntaks
Nedenfor er syntaksen til PL/SQL-blokkstrukturen.
DECLARE --optional
<declarations>
BEGIN --mandatory
<executable statements. At least one executable statement is mandatory>
EXCEPTION --optional
<exception handles>
END; --mandatory
/
OBS: En blokk skal alltid fรธlges av '/' som sender informasjonen til kompilatoren om slutten av blokken.
Typer PL/SQL-blokker
PL/SQL-blokker er hovedsakelig av to typer.
- Anonyme blokker
- Navngitte blokker
Anonyme blokker
Anonyme blokker er PL/SQL-blokker som ikke har noen navn tildelt dem. De mรฅ opprettes og brukes i samme รธkt fordi de ikke vil bli lagret pรฅ serveren som databaseobjekter.
Siden de ikke trenger รฅ lagre i databasen, trenger de ingen kompileringstrinn. De skrives og utfรธres direkte, og kompilering og utfรธrelse skjer i en enkelt prosess.
Nedenfor er noen flere kjennetegn ved anonyme blokker.
- Disse blokkene har ikke noe referansenavn spesifisert for dem.
- Disse blokkene starter med nรธkkelordet 'DECLARE' eller 'BEGIN'.
- Siden disse blokkene ikke har noe referansenavn, kan disse ikke lagres for senere formรฅl. De skal opprettes og utfรธres i samme sesjon.
- De kan kalle de andre navngitte blokkene, men kall til anonym blokk er ikke mulig da den ikke har noen referanse.
- Den kan ha nestet blokk i seg som kan navngis eller anonym. Den kan ogsรฅ nestes i alle blokker.
- Disse blokkene kan ha alle tre delene av blokken, der utfรธrelsesdelen er obligatorisk, de to andre delene er valgfrie.
Navngitte blokker
Navngitte blokker har et spesifikt og unikt navn for dem. De lagres som databaseobjekter pรฅ serveren. Siden de er tilgjengelige som databaseobjekter, kan de refereres til eller brukes sรฅ lenge de finnes pรฅ serveren. Kompileringsprosessen for navngitte blokker skjer separat mens de opprettes som databaseobjekter.
Nedenfor er noen flere kjennetegn ved navngitte blokker.
- Disse blokkene kan kalles fra andre blokker.
- Blokkstrukturen er den samme som en anonym blokk, bortsett fra at den aldri starter med nรธkkelordet 'DECLARE'. I stedet vil det starte med nรธkkelordet 'CREATE' som instruerer kompilatoren til รฅ lage det som et databaseobjekt.
- Disse blokkene kan nestes i andre blokker. Den kan ogsรฅ inneholde nestede blokker.
- Navngitte blokker er i hovedsak av to typer:
- Prosedyre
- Funksjon
Vi vil lรฆre mer om disse navngitte blokkene i "Prosedyre" og "Funksjon"-emner i senere opplรฆring.
Sammendrag
Etter denne opplรฆringen bรธr du vรฆre klar over PL/SQL-blokker og dens typer, ulike deler av blokker og deres bruk. Den detaljerte beskrivelsen av de navngitte PL/SQL-blokkene vil bli dekket i den senere opplรฆringen.


