Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

converter para PROCEDURE pl/sql


Tudo que você precisa mudar é o DECLARE (indicando o início de um bloco anônimo) para CREATE PROCEDURE , com a variável que você está configurando atualmente por meio de uma variável de substituição como um argumento formal; então em vez de:
DECLARE
     veno  emp.empno%type:=&veno;
     vsal  emp.sal%type;
     vexp  number;
BEGIN
...
END;
/

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

Você pode então chamar isso de um bloco anônimo, ou no SQL*Plus ou SQL Developer com o execute forma abreviada:
set serveroutput on
execute my_proc(&veno);

Este exemplo ainda está usando uma variável de substituição para que você seja promovido para o valor a ser usado, mas também pode passar um número diretamente.

Leia mais sobre como criar procedimentos e os tipos de parâmetros .

Você pode simplificar bastante o código para reduzir a repetição e a repetição; procure expressões case e a cláusula de retorno. Mas isso não é diretamente relevante.