PL/SQL är ett språk för att skriva autonoma program. Den är inte designad för användarinteraktivitet. Ingångsvärden skickas som parametrar. Så ditt program bör se ut så här
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;
/
Observera att det inte finns något behov av DECLARE med en namngiven procedur. Avsnittet mellan AS och BEGIN är till för att deklarera variabler, som jag har gjort med l_salutation
.
Du kan ange värden för dessa parametrar när du anropar programmet. I SQL*Plus skulle det fungera så här:
SET SERVEROUTPUT ON
accept p1 prompt "please enter 1 or 0: "
accept p2 prompt "please enter Y or N: "
exec HELLO (&p1, '&p2')