Oracle
 sql >> Datenbank >  >> RDS >> Oracle

in PROCEDURE pl/sql umwandeln

Alles, was Sie ändern müssen, ist DECLARE (zeigt den Beginn eines anonymen Blocks an) zu CREATE PROCEDURE , mit der Variable, die Sie gerade über eine Substitutionsvariable als formales Argument festlegen; also statt:

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

Mach es:

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

Sie können das dann von einem anonymen Block oder in SQL*Plus oder SQL Developer mit execute aufrufen Kurzschrift:

set serveroutput on
execute my_proc(&veno);

In diesem Beispiel wird immer noch eine Substitutionsvariable verwendet, sodass Sie für den zu verwendenden Wert höher gestuft werden, aber Sie können auch direkt eine Zahl übergeben.

Lesen Sie mehr über das Erstellen von Prozeduren und die Typen von Parameter .

Sie könnten den Code ziemlich vereinfachen, um Wiederholungen und erneute Abfragen zu reduzieren. Schlagen Sie case-Ausdrücke und die Rückgabeklausel nach. Aber das ist nicht direkt relevant.