sql >> Database teknologi >  >> RDS >> Oracle

PL/SQL:hvordan beder jeg brugerinput i en procedure?

PL/SQL er et sprog til at skrive autonome programmer. Det er ikke designet til brugerinteraktivitet. Inputværdier sendes som parametre. Så dit program skulle se sådan ud

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

Bemærk, at der ikke er behov for DECLARE med en navngivet procedure. Afsnittet mellem AS og BEGIN er til at erklære variabler, som jeg har gjort med l_salutation .

Du kan angive værdier for disse parametre, når du starter programmet. I SQL*Plus ville det fungere sådan her:

SET SERVEROUTPUT ON

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

exec HELLO (&p1, '&p2')


  1. Sådan bruges GROUP BY-klausul i SQL

  2. Sådan ændres standarddatabasens mailprofil for en bruger i SQL Server (T-SQL)

  3. Sådan bruges Failover-mekanismen i MaxScale

  4. Hvorfor behandler Oracle 9i en tom streng som NULL?