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

Chamando um procedimento armazenado no Oracle com parâmetros IN e OUT


Se você definir a saída do servidor no modo ON antes de todo o código, ele funcionará, caso contrário, put_line() não funcionará. Tente!

O código é,
set serveroutput on;
CREATE OR REPLACE PROCEDURE PROC1(invoicenr IN NUMBER, amnt OUT NUMBER)
AS BEGIN
SELECT AMOUNT INTO amnt FROM INVOICE WHERE INVOICE_NR = invoicenr;
END;

E então chame a função como está:
DECLARE
amount NUMBER;
BEGIN
PROC1(1000001, amount);
dbms_output.put_line(amount);
END;