Oracle
 sql >> Base de données >  >> RDS >> Oracle

PL/SQL :comment demander une saisie utilisateur dans une procédure ?

PL/SQL est un langage d'écriture de programmes autonomes. Il n'est pas conçu pour l'interactivité de l'utilisateur. Les valeurs d'entrée sont transmises en tant que paramètres. Votre programme devrait donc ressembler à ceci

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

Notez qu'il n'est pas nécessaire de DECLARE avec une procédure nommée. La section entre AS et BEGIN sert à déclarer des variables, comme je l'ai fait avec l_salutation .

Vous pouvez fournir des valeurs pour ces paramètres lors de l'appel du programme. Dans SQL*Plus, cela fonctionnerait comme ceci :

SET SERVEROUTPUT ON

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

exec HELLO (&p1, '&p2')