plsql
PLSQL-procedur
Sök…
Introduktion
PLSQL-proceduren är en grupp SQL-satser lagrade på servern för återanvändning. Det ökar prestandan eftersom SQL-satserna inte behöver sammanställas varje gång de körs.
Lagrade procedurer är användbara när samma kod krävs av flera applikationer. Att ha lagrade procedurer eliminerar redundans och introducerar koden enkelhet. När dataöverföring krävs mellan klienten och servern kan procedurer sänka kommunikationskostnaderna i vissa situationer.
Syntax
CREATE [OR REPLACE] PROCEDURE procedure_name
[(parameter_name [IN | OUT | IN OUT] type [, ...])]
{IS | AS}
< declarations >
BEGIN
< procedure_body >
EXCEPTION -- Exception-handling part begins
<exception handling goes here >
WHEN exception1 THEN
exception1-handling-statements
END procedure_name;
- procedurnamn anger procedurens namn.
- Alternativet [ELLER Byt ut] gör det möjligt att ändra en befintlig procedur.
- Den valfria parameterlistan innehåller namn, läge och parametrar. IN representerar att värdet kommer att passeras utanför och OUT representerar att denna parameter kommer att användas för att returnera ett värde utanför proceduren. Om inget läge anges antas parametern vara av IN-läget.
- I deklarationsavsnittet kan vi deklarera variabler som kommer att användas i kroppsdelen.
- procedur-organet innehåller den körbara delen.
- AS-nyckelordet används istället för IS-nyckelordet för att skapa en fristående procedur.
- undantagsavsnitt kommer att hantera undantagen från proceduren. Det här avsnittet är valfritt.
Hej världen
Följande enkla procedur visar texten "Hello World" i en klient som stöder dbms_output
.
CREATE OR REPLACE PROCEDURE helloworld
AS
BEGIN
dbms_output.put_line('Hello World!');
END;
/
Du måste köra detta vid SQL-prompten för att skapa proceduren i databasen, eller så kan du köra frågan nedan för att få samma resultat:
SELECT 'Hello World!' from dual;
In / Ut-parametrar
PL / SQL använder IN, OUT, IN OUT nyckelord för att definiera vad som kan hända med en godkänd parameter.
IN anger att parametern endast är skrivskyddad och värdet inte kan ändras med proceduren.
OUT anger att parametern endast är skrivning och en procedur kan tilldela ett värde till den, men inte referens till värdet.
IN OUT anger att parametern är tillgänglig för referens och modifiering.
PROCEDURE procedureName(x IN INT, strVar IN VARCHAR2, ans OUT VARCHAR2)
...
...
END procedureName;
procedureName(firstvar, secondvar, thirdvar);
Variablerna som skickas i ovanstående exempel måste skrivas in eftersom de definieras i procedurparameteravsnittet.