sammanfattning: i den här handledningen lär du dig om PL/SQL anonymous block och hur du kör det med SQL*Plus och SQL Developer tools.
PL/SQL anonym blocköversikt
PL / SQL är ett blockstrukturerat språk vars kod är organiserad i block. Ett PL / SQL-block består av tre sektioner: deklaration, körbar och undantagshanteringsavsnitt. I ett block är det körbara avsnittet obligatoriskt medan avsnitten deklaration och undantagshantering är valfria.
ett PL / SQL-block har ett namn. Funktioner eller procedurer är ett exempel på ett namngivet block. Ett namngivet block lagras i Oracle-databasservern och kan återanvändas senare.
ett block utan namn är ett anonymt block. Ett anonymt block sparas inte i Oracle-databasservern, så det är bara för engångsbruk. PL / SQL anonyma block kan dock vara användbara för teständamål.
följande bild illustrerar strukturen för ett PL / SQL-block:
1) deklarationsavsnittet
ett PL / SQL-block har ett deklarationsavsnitt där du deklarerar variabler, allokerar minne för markörer och definierar datatyper.
2) körbar sektion
ett PL/SQL-block har en körbar sektion. Ett körbart avsnitt börjar med nyckelordet BEGIN
och slutar med nyckelordet END
. Det körbara avsnittet måste ha minst ett körbart uttalande, även om det är NULL
– uttalandet som inte gör någonting.
3) avsnitt för undantagshantering
ett PL/SQL-block har ett avsnitt för undantagshantering som börjar med nyckelordet EXCEPTION
. Avsnittet undantagshantering är där du fångar och hanterar undantag som tas upp av koden i avsnittet utförande.
Obs ett block i sig är ett körbart uttalande, därför kan du bo ett block i andra block.
PL/SQL anonymt blockexempel
följande exempel visar ett enkelt PL / SQL anonymt block med en körbar sektion.
det körbara avsnittet anropar proceduren DMBS_OUTPUT.PUT_LINE
för att visa meddelandet "Hello World"
på skärmen.
kör ett PL / SQL anonymt block med SQL * Plus
när du har koden för ett anonymt block kan du köra det med SQL*Plus, vilket är ett kommandoradsgränssnitt för att köra SQL-uttryck och PL/SQL-block som tillhandahålls av Oracle Database.
följande bild illustrerar hur man kör ett PL / SQL-block med SQL * Plus:
Anslut först till Oracle-databasservern med ett användarnamn och lösenord.
för det andra, slå på serverutmatningen med kommandot SET SERVEROUTPUT ON
så att proceduren DBMS_OUTPUT.PUT_LINE
visar text på skärmen.
tredje, skriv koden för blocket och ange ett snedstreck framåt ( /
) för att instruera SQL*Plus att köra blocket. När du skriver framåt snedstreck (/), SQL*Plus kommer att köra blocket och visa Hello World
meddelande på skärmen som visas i illustrationerna.
Observera att du måste köra kommandot SET SERVEROUTPUT ON
i varje session som du ansluter till Oracle-databasen för att visa meddelandet med proceduren DBMS_OUTPUT.PUT_LINE
.
för att köra blocket som du har angett igen använder du kommandot /
istället för att skriva allt från början:
om du vill redigera kodblocket använder du kommandot edit
. SQL * Plus skriver kodblocket till en fil och öppnar det i en textredigerare som visas på följande bild:
du kan ändra innehållet i filen som följande:
och spara och stäng filen. Innehållet i filen kommer att skrivas till bufferten och kompileras om.
därefter kan du köra kodblocket igen, det kommer att använda den nya koden:
kör ett PL/SQL anonymous block med SQL Developer
Anslut först till Oracle-databasservern med Oracle SQL Developer.
för det andra, skapa en ny SQL-fil med namnet anonymous-block.sql
bosatt i katalogen C:\plsql
som lagrar PL/SQL-koden.
tredje, ange PL/SQL-koden och kör den genom att klicka på Execute-knappen eller trycka på Ctrl-Enter-kortkommandot.
fler PL/SQL anonymous block exempel
i det här exemplet förklarar vi först en variabel l_message
som innehåller hälsningsmeddelandet. Och sedan, i exekveringsavsnittet, använder vi DBMS_OUTPUT.PUTLINE
– proceduren för att visa innehållet i denna variabel istället för att använda en bokstavlig sträng.
här är utgången:
Hello World!
nästa anonyma blockexempel lägger till ett avsnitt för undantagshantering som fångar ZERO_DIVIDE
undantag som tagits upp i det körbara avsnittet och visar ett felmeddelande.
felet mesage är:
ORA-01476: divisor is equal to zero
nu borde du veta hur man skapar PL/SQL anonyma block och kör dem med SQL*Plus och Oracle SQL Developer tools.
- var denna handledning till hjälp?
- ja nej