Oracle
 sql >> Database >  >> RDS >> Oracle

Chiamata di una procedura memorizzata in Oracle con parametri IN e OUT

Se imposti l'output del server in modalità ON prima dell'intero codice, funziona, altrimenti put_line() non funzionerà. Provalo!

Il codice è,

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 poi chiama la funzione così com'è:

DECLARE
amount NUMBER;
BEGIN
PROC1(1000001, amount);
dbms_output.put_line(amount);
END;