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')