Samenvatting: in deze tutorial leert u over het PL/SQL anonymous block en hoe u het kunt uitvoeren met behulp van SQL*Plus en SQL Developer tools.
PL/SQL anonymous block overview
PL/SQL is een blok-gestructureerde taal waarvan de code is georganiseerd in blokken. Een PL/SQL blok bestaat uit drie secties: declaratie, uitvoerbaar, en exception-handling secties. In een blok is de uitvoerbare sectie verplicht, terwijl de declaratie en exception-handling secties optioneel zijn.
Een PL/SQL blok heeft een naam. Functies of Procedures is een voorbeeld van een named block. Een named block wordt opgeslagen in de Oracle Database server en kan later worden hergebruikt.
Een blok zonder naam is een anonymous block. Een anoniem blok wordt niet opgeslagen in de Oracle Database server, dus het is slechts voor eenmalig gebruik. Anonieme PL/SQL-blokken kunnen echter nuttig zijn voor testdoeleinden.
De volgende afbeelding illustreert de structuur van een PL/SQL-blok:
1) Declaratiesectie
Een PL/SQL-blok heeft een declaratiesectie waarin variabelen worden gedeclareerd, geheugen voor cursors wordt toegewezen en datatypen worden gedefinieerd.
2) Uitvoerbare sectie
Een PL/SQL-blok heeft een uitvoerbare sectie. Een executable section begint met het keyword BEGIN
en eindigt met het keyword END
. De executable sectie moet tenminste één executable statement hebben, zelfs als het de NULL
statement is die niets doet.
3) Exception-handling sectie
Een PL/SQL blok heeft een exception-handling sectie die begint met het keyword EXCEPTION
. De exception-handling-sectie is waar u uitzonderingen opvangt en afhandelt die worden opgeworpen door de code in de uitvoeringssectie.
Merk op dat een blok zelf een uitvoerbaar statement is, daarom kunt u een blok in andere blokken nesten.
PL/SQL anoniem blok voorbeeld
Het volgende voorbeeld toont een eenvoudig PL/SQL anoniem blok met één uitvoerbaar gedeelte.
De executable sectie roept de DMBS_OUTPUT.PUT_LINE
procedure aan om het "Hello World"
bericht op het scherm weer te geven.
Uitvoeren van een PL/SQL anoniem blok met behulp van SQL*Plus
Als u eenmaal de code van een anoniem blok hebt, kunt u het uitvoeren met behulp van SQL*Plus, dat een opdrachtregelinterface is voor het uitvoeren van SQL-instructie en PL/SQL-blokken die door Oracle Database worden geleverd.
De volgende afbeelding laat zien hoe u een PL/SQL-blok uitvoert met SQL*Plus:
Maak eerst verbinding met de Oracle Database-server met een gebruikersnaam en wachtwoord.
Tweede schakelt u de serveruitvoer in met de opdracht SET SERVEROUTPUT ON
, zodat de procedure DBMS_OUTPUT.PUT_LINE
tekst op het scherm weergeeft.
Tweede typt u de code van het blok en voert u een voorwaartse schuine streep ( /
) in om SQL*Plus opdracht te geven het blok uit te voeren. Zodra u de voorwaartse schuine streep (/) typt, voert SQL*Plus het blok uit en geeft het Hello World
-bericht op het scherm weer, zoals in de illustraties wordt getoond.
Merk op dat u het SET SERVEROUTPUT ON
-commando moet uitvoeren in elke sessie waarin u verbinding maakt met de Oracle Database om het bericht met de DBMS_OUTPUT.PUT_LINE
-procedure te kunnen weergeven.
Om het ingevoerde blok opnieuw uit te voeren, gebruikt u de opdracht /
in plaats van alles vanaf nul in te typen:
Als u het codeblok wilt bewerken, gebruikt u de opdracht edit
. SQL*Plus schrijft het codeblok naar een bestand en opent dit in een teksteditor, zoals te zien is in de volgende afbeelding:
U kunt de inhoud van het bestand als volgt wijzigen:
En sla het bestand op en sluit het. De inhoud van het bestand wordt naar de buffer geschreven en opnieuw gecompileerd.
Daarna kunt u het codeblok opnieuw uitvoeren, het zal de nieuwe code gebruiken:
Uitvoeren van een PL/SQL anonymous block met behulp van SQL Developer
Maak eerst verbinding met de Oracle Database server met behulp van Oracle SQL Developer.
Tweede, maak een nieuw SQL-bestand met de naam anonymous-block.sql
in de directory C:\plsql
waarin de PL/SQL-code zal worden opgeslagen.
Ter derde voert u de PL/SQL-code in en voert u deze uit door op de knop Uitvoeren te klikken of door op de sneltoets Ctrl-Enter te drukken.
Meer PL/SQL anonieme blokvoorbeelden
In dit voorbeeld declareren we eerst een variabele l_message
die de begroetingsboodschap bevat. En dan, in de uitvoeringssectie, gebruiken we de DBMS_OUTPUT.PUTLINE
procedure om de inhoud van deze variabele weer te geven in plaats van een letterlijke string.
Hier is de uitvoer:
Hello World!
Het volgende anonieme blok voorbeeld voegt een uitzonderingsafhandelingssectie toe die ZERO_DIVIDE
uitzondering vangt die in de uitvoerende sectie zijn opgeworpen en een foutmelding weergeeft.
De foutmelding is:
ORA-01476: divisor is equal to zero
Nu zou u moeten weten hoe u anonieme PL/SQL-blokken maakt en ze uitvoert met behulp van SQL*Plus en Oracle SQL Developer tools.
- Was deze tutorial nuttig?
- JaNee