sql >> Databáze >  >> RDS >> Oracle

převést na PROCEDURE pl/sql

Vše, co potřebujete změnit, je DECLARE (označující začátek anonymního bloku) na CREATE PROCEDURE , s proměnnou, kterou právě nastavujete prostřednictvím substituční proměnné jako formálního argumentu; takže místo:

DECLARE
     veno  emp.empno%type:=&veno;
     vsal  emp.sal%type;
     vexp  number;
BEGIN
...
END;
/

Udělejte to:

CREATE OR REPLACE PROCEDURE my_proc (veno IN emp.empno%type)
AS
     vsal  emp.sal%type;
     vexp  number;
BEGIN
...
END;
/

To pak můžete volat z anonymního bloku nebo v SQL*Plus nebo SQL Developer pomocí execute těsnopis:

set serveroutput on
execute my_proc(&veno);

Tento příklad stále používá substituční proměnnou, takže budete povýšeni o hodnotu, kterou chcete použít, ale můžete také předat přímo číslo.

Přečtěte si další informace o vytváření procedur a typy parametrů .

Mohli byste kód docela zjednodušit, abyste snížili opakování a opakované dotazy; vyhledat případové výrazy a návratovou klauzuli. Ale to není přímo relevantní.




  1. jak aktualizovat mysql pomocí php při odečítání

  2. Bezpečný způsob ukládání souborů na webovém serveru?

  3. Jaký má smysl používat klíčové slovo AS v SQL, když lze aliasing provést bez něj?

  4. Jak vytvořit index na LOWER (users.username) v Rails (pomocí postgres)