sql >> Databáze >  >> RDS >> Oracle

PL/SQL:jak vyvolám uživatelský vstup do procedury?

PL/SQL je jazyk pro psaní autonomních programů. Není určen pro uživatelskou interaktivitu. Vstupní hodnoty jsou předávány jako parametry. Váš program by tedy měl vypadat takto

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

Všimněte si, že není potřeba DECLARE s pojmenovanou procedurou. Sekce mezi AS a BEGIN je pro deklarování proměnných, jak jsem to udělal s l_salutation .

Hodnoty těchto parametrů můžete zadat při vyvolání programu. V SQL*Plus by to fungovalo takto:

SET SERVEROUTPUT ON

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

exec HELLO (&p1, '&p2')


  1. Jak zjistit, zda hodnota obsahuje alespoň jednu číselnou číslici v MySQL

  2. Přirozené připojení na SQL Server

  3. Jak mohu hashovat hesla v postgresql?

  4. Funkce AVG() v PostgreSQL