Oracle
 sql >> Datenbank >  >> RDS >> Oracle

PL/SQL:Wie fordere ich Benutzereingaben in einer Prozedur auf?

PL/SQL ist eine Sprache zum Schreiben autonomer Programme. Es ist nicht für Benutzerinteraktivität ausgelegt. Eingabewerte werden als Parameter übergeben. Ihr Programm sollte also so aussehen

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

Beachten Sie, dass DECLARE mit einer benannten Prozedur nicht erforderlich ist. Der Abschnitt zwischen AS und BEGIN dient zum Deklarieren von Variablen, wie ich es mit l_salutation getan habe .

Sie können Werte für diese Parameter angeben, wenn Sie das Programm aufrufen. In SQL*Plus würde das so funktionieren:

SET SERVEROUTPUT ON

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

exec HELLO (&p1, '&p2')