Hvad er PL / SQL-blok?
I PL / SQL udføres koden ikke i enkelt linieformat, men den udføres altid ved at gruppere koden i et enkelt element kaldet Blocks. I denne vejledning vil du lære om disse blokke.
Blokke indeholder både PL / SQL såvel som SQL instruktion. Alle disse instruktioner vil blive udført som en helhed i stedet for at udføre en enkelt instruktion ad gangen.
I denne vejledning lærer du:
- Hvad er PL / SQL-blok?
- Blokstruktur
- PL / SQL-bloksyntaks
- Typer af PL / SQL-blok
Blokstruktur
PL / SQL-blokke har en foruddefineret struktur, hvor koden skal grupperes. Nedenfor er forskellige sektioner af PL / SQL-blokke.
- Erklæring sektion
- Udførelsesafdeling
- Undtagelse-håndtering sektion
Nedenstående billede illustrerer de forskellige PL / SQL-blokke og deres sektionsrækkefølge.
Erklæring sektion
Dette er den første sektion af PL / SQL-blokke. Dette afsnit er en valgfri del. Dette er det afsnit, hvor erklæringen af variabler, markører, undtagelser, underprogrammer, pragmainstruktioner og samlinger, der er nødvendige i blokken, vil blive deklareret. Nedenfor er nogle få flere egenskaber ved denne del.
- Denne særlige sektion er valgfri 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 'ERKLÆR' for udløsere og anonym blokering. For andre underprogrammer er dette nøgleord ikke til stede. I stedet markerer delen efter definitionen af underprogramnavnet erklæringsafsnittet.
- Dette afsnit skal altid efterfølges af eksekveringsafsnittet.
Udførelsesafdeling
Eksekveringsdel er den vigtigste og obligatoriske del, der faktisk udfører koden, der er skrevet inde i den. Da PL / SQL forventer eksekverbare udsagn fra denne blok, kan dette ikke være en tom blok, dvs. den skal have mindst en gyldig eksekverbar kodelinje i den. Nedenfor er nogle få flere egenskaber ved denne del.
- Denne kan indeholde både PL / SQL-kode og SQL-kode.
- Dette kan indeholde en eller flere blokke inde i den som en indlejret blok.
- Dette afsnit starter med nøgleordet 'BEGIN'.
- Dette afsnit skal følges enten af 'END' eller afsnittet om undtagelseshåndtering (hvis det findes)
Undtagelse-håndtering sektion:
Undtagelsen er uundgåelig i programmet, der opstår ved kørsel, og for at håndtere dette har Oracle leveret en undtagelseshåndteringssektion i blokke. Dette afsnit kan også indeholde PL / SQL-udsagn. Dette er et valgfrit afsnit af PL / SQL-blokke.
- Dette er det afsnit, hvor undtagelsen, der er rejst i eksekveringsblokken, håndteres.
- Dette afsnit er den sidste del af PL / SQL-blokken.
- Kontrol fra dette afsnit kan aldrig vende tilbage til eksekveringsblokken.
- Dette afsnit starter med nøgleordet 'UNDTAGELSE'.
- Dette afsnit skal altid følges af nøgleordet 'END'.
Nøgleordet 'END' markerer slutningen af PL / SQL-blok.
PL / SQL-bloksyntaks
Nedenfor er syntaksen for PL / SQL-blokstrukturen.
DECLARE --optionalBEGIN --mandatory EXCEPTION --optional 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 gemmes 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 udførelse sker i en enkelt proces.
Nedenfor er der få flere egenskaber ved anonyme blokke.
- Disse blokke har ikke angivet noget referencenavn til dem.
- Disse blokke starter med nøgleordet 'ERKLÆR' eller 'BEGIN'.
- Da disse blokke ikke har noget referencenavn, kan disse ikke gemmes til senere formål. De oprettes og udføres i samme session.
- De kan ringe til de andre navngivne blokke, men opkald til anonym blokering er ikke mulig, da den ikke har nogen reference.
- Det kan have indlejret blok i det, som kan navngives eller være anonym. Det kan også være indlejret i alle blokke.
- Disse blokke kan have alle tre sektioner af blokken, hvor eksekveringsafsnit er obligatorisk, de to andre sektioner er valgfri.
Navngivne blokke:
Navngivne blokke har et specifikt og unikt navn til dem. De gemmes som databaseobjekter på serveren. Da de er tilgængelige som databaseobjekter, kan de henvises til eller bruges, så længe de findes på serveren. Kompileringsprocessen for navngivne blokke sker separat, mens du opretter dem som databaseobjekter.
Nedenfor er der flere få egenskaber ved 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 'ERKLÆRING'. I stedet starter det med nøgleordet 'CREATE', som instruerer kompilatoren om 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
- Fungere
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.