sql >> Databasteknik >  >> RDS >> Oracle

PL/SQL:hur ber jag användarinmatning i en procedur?

PL/SQL är ett språk för att skriva autonoma program. Den är inte designad för användarinteraktivitet. Ingångsvärden skickas som parametrar. Så ditt program bör se ut så här

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

Observera att det inte finns något behov av DECLARE med en namngiven procedur. Avsnittet mellan AS och BEGIN är till för att deklarera variabler, som jag har gjort med l_salutation .

Du kan ange värden för dessa parametrar när du anropar programmet. I SQL*Plus skulle det fungera så här:

SET SERVEROUTPUT ON

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

exec HELLO (&p1, '&p2')


  1. Hur deklarerar man indata-utgångsparametrar i lagrad procedur/funktion i SQL Server?

  2. Utmaningslösningar för nummerseriegenerator – del 2

  3. Hur man skapar PL/SQL lagrade procedurer utan parametrar i Oracle Database

  4. Hur ditt småföretag kan dra nytta av cloud computing