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

PL/SQL:come posso richiedere l'input dell'utente in una procedura?

PL/SQL è un linguaggio per scrivere programmi autonomi. Non è progettato per l'interattività dell'utente. I valori di input vengono passati come parametri. Quindi il tuo programma dovrebbe assomigliare a questo

CREATE OR REPLACE PROCEDURE hello
    ( p1 in number
    , p2 in varchar2 )
AS
    l_salutation varchar2(20) := 'Hello World';
BEGIN
    DBMS_OUTPUT.PUT_LINE(l_salutation);
    DBMS_OUTPUT.PUT_LINE('p1 = ' || p1);
    DBMS_OUTPUT.PUT_LINE('p2 = ' || p2);
END;
/

Si noti che non è necessario DECLARE con una procedura denominata. La sezione tra AS e BEGIN serve per la dichiarazione di variabili, come ho fatto con l_salutation .

È possibile fornire valori per tali parametri quando si richiama il programma. In SQL*Plus funzionerebbe in questo modo:

SET SERVEROUTPUT ON

accept p1 prompt "please enter 1 or 0: "
accept p2 prompt "please enter Y or N: "

exec HELLO (&p1, '&p2')