PL/SQL er et sprog til at skrive autonome programmer. Det er ikke designet til brugerinteraktivitet. Inputværdier sendes som parametre. Så dit program skulle se sådan ud
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;
/
Bemærk, at der ikke er behov for DECLARE med en navngivet procedure. Afsnittet mellem AS og BEGIN er til at erklære variabler, som jeg har gjort med l_salutation
.
Du kan angive værdier for disse parametre, når du starter programmet. I SQL*Plus ville det fungere sådan her:
SET SERVEROUTPUT ON
accept p1 prompt "please enter 1 or 0: "
accept p2 prompt "please enter Y or N: "
exec HELLO (&p1, '&p2')