sql >> Base de Datos >  >> RDS >> Oracle

PL/SQL:¿cómo solicito la entrada del usuario en un procedimiento?

PL/SQL es un lenguaje para escribir programas autónomos. No está diseñado para la interactividad del usuario. Los valores de entrada se pasan como parámetros. Entonces, su programa debería verse así

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;
/

Tenga en cuenta que no es necesario DECLARAR con un Procedimiento con nombre. La sección entre AS y BEGIN es para declarar variables, como lo he hecho con l_salutation .

Puede proporcionar valores para esos parámetros al invocar el programa. En SQL*Plus funcionaría así:

SET SERVEROUTPUT ON

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

exec HELLO (&p1, '&p2')