PL/SQL е език за писане на автономни програми. Той не е предназначен за потребителска интерактивност. Входните стойности се предават като параметри. Така че вашата програма трябва да изглежда така
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;
/
Обърнете внимание, че няма нужда от DECLARE с наименувана процедура. Разделът между AS и BEGIN е за деклариране на променливи, както направих с l_salutation
.
Можете да предоставите стойности за тези параметри при извикване на програмата. В SQL*Plus ще работи така:
SET SERVEROUTPUT ON
accept p1 prompt "please enter 1 or 0: "
accept p2 prompt "please enter Y or N: "
exec HELLO (&p1, '&p2')