Vad är PL / SQL-block?
I PL / SQL körs inte koden i enstaka radformat, men den körs alltid genom att gruppera koden i ett enda element som heter Blocks. I denna handledning kommer du att lära dig mer om dessa block.
Block innehåller både PL / SQL- och SQL-instruktioner. Alla dessa instruktioner kommer att utföras som en helhet snarare än att utföra en enda instruktion åt gången.
I den här handledningen lär du dig:
- Vad är PL / SQL-block?
- Blockstruktur
- PL / SQL Block Syntax
- Typer av PL / SQL-block
Blockstruktur
PL / SQL-block har en fördefinierad struktur där koden ska grupperas. Nedan finns olika sektioner av PL / SQL-block.
- Deklarationsavsnitt
- Avrättningsavsnitt
- Avsnitt för undantagshantering
Bilden nedan illustrerar olika PL / SQL-block och deras sektionsordning.
Deklarationsavsnitt
Detta är den första delen av PL / SQL-blocken. Detta avsnitt är en valfri del. Detta är det avsnitt där deklarationen av variabler, markörer, undantag, underprogram, pragmainstruktioner och samlingar som behövs i blocket kommer att deklareras. Nedan följer 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.
- Detta avsnitt börjar med nyckelordet 'FÖRKLARA' för utlösare och anonymt block. För andra underprogram kommer detta nyckelord inte att finnas. Istället markerar delen efter definitionen av underprogramnamnet deklarationsavsnittet.
- Detta avsnitt bör alltid följas av exekveringsavsnitt.
Avrättningsavdelning
Exekveringsdel är den viktigaste och obligatoriska delen som faktiskt kör koden som är skriven inuti den. Eftersom PL / SQL förväntar sig körbara uttalanden från detta block kan detta inte vara ett tomt block, dvs det borde ha minst en giltig körbar kodrad i sig. Nedan följer några fler egenskaper hos denna del.
- Den 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.
- Detta avsnitt börjar med nyckelordet "BEGIN".
- Detta avsnitt bör följas antingen av avsnittet "SLUT" eller undantagshantering (om det finns)
Avsnitt för undantagshantering:
Undantaget är oundvikligt i programmet som sker vid körning och för att hantera detta har Oracle tillhandahållit ett avsnitt för undantagshantering i block. Detta avsnitt kan också innehålla PL / SQL-uttalanden. Detta är en valfri del av PL / SQL-blocken.
- Detta är avsnittet där undantaget som tas upp i körningsblocket hanteras.
- Detta avsnitt är den sista delen av PL / SQL-blocket.
- Kontroll från det här avsnittet kan aldrig återvända till körningsblocket.
- Detta avsnitt börjar med nyckelordet "UNDANTAG".
- Detta avsnitt bör alltid följas av nyckelordet "END".
Nyckelordet "END" markerar slutet på PL / SQL-blocket.
PL / SQL Block Syntax
Nedan är syntaxen för PL / SQL-blockstrukturen.
DECLARE --optionalBEGIN --mandatory EXCEPTION --optional END; --mandatory/
Obs! Ett block ska alltid följas av '/' som skickar informationen till kompilatorn om slutet på blocket.
Typer av PL / SQL-block
PL / SQL-block är av huvudsakligen två typer.
- Anonyma block
- Namngivna block
Anonyma block:
Anonyma block är PL / SQL-block som inte har några namn tilldelade. 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 utförs direkt, och sammanställning och exekvering sker i en enda process.
Nedan följer några fler egenskaper hos anonyma block.
- Dessa block har inget referensnamn angivet för dem.
- Dessa block börjar med nyckelordet 'FÖRKLARA' eller 'BEGIN'.
- Eftersom dessa block inte har något referensnamn kan de inte lagras för senare ändamål. De ska skapas och köras under samma session.
- De kan ringa de andra namngivna blocken, men det är inte möjligt att ringa till anonymt eftersom det inte har någon referens.
- Det kan ha kapslat block i det som kan namnges eller anonymt. Det kan också kapslas i alla block.
- Dessa block kan ha alla tre sektionerna i 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 databasobjekten på servern. Eftersom de är tillgängliga som databasobjekt kan de hänvisas till eller användas så länge de finns på servern. Kompileringsprocessen för namngivna block sker separat när du skapar dem som databasobjekt.
Nedan följer några fler egenskaper hos Named blocks.
- Dessa block kan anropas från andra block.
- Blockstrukturen är densamma som ett anonymt block, förutom att det aldrig börjar med nyckelordet 'FÖRKLARA'. Istället börjar det med nyckelordet 'CREATE' som instruerar kompilatorn att skapa det som ett databasobjekt.
- Dessa block kan kapslas in i andra block. Det kan också innehålla kapslade block.
- Namngivna block är i princip av två typer:
- Procedur
- Fungera
Sammanfattning
Efter denna handledning bör du vara medveten om PL / SQL-block och dess typer, olika sektioner av block och deras användning. Den detaljerade beskrivningen av de namngivna PL / SQL-blocken kommer att behandlas i den senare självstudien.