Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

PL/SQL:como solicitar a entrada do usuário em um procedimento?


PL/SQL é uma linguagem para escrever programas autônomos. Ele não foi projetado para interatividade do usuário. Os valores de entrada são passados ​​como parâmetros. Portanto, seu programa deve ficar assim
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;
/

Observe que não há necessidade de DECLARE com um procedimento nomeado. A seção entre AS e BEGIN é para declarar variáveis, como fiz com l_salutation .

Você pode fornecer valores para esses parâmetros ao chamar o programa. No SQL*Plus funcionaria assim:
SET SERVEROUTPUT ON

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

exec HELLO (&p1, '&p2')