sql >> Database >  >> RDS >> Oracle

PL/SQL:hoe vraag ik gebruikersinvoer in een procedure?

PL/SQL is een taal voor het schrijven van autonome programma's. Het is niet ontworpen voor gebruikersinteractiviteit. Invoerwaarden worden doorgegeven als parameters. Uw programma zou er dus zo uit moeten zien

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

Merk op dat er geen VERKLARING nodig is met een benoemde procedure. De sectie tussen AS en BEGIN is voor het declareren van variabelen, zoals ik heb gedaan met l_salutation .

U kunt waarden voor die parameters opgeven wanneer u het programma aanroept. In SQL*Plus zou het als volgt werken:

SET SERVEROUTPUT ON

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

exec HELLO (&p1, '&p2')


  1. MySQL, Controleer of een kolom bestaat in een tabel met SQL

  2. MySQL Buitenlandse sleutel toevoegen

  3. Hoe modelleer je overerving effectief in een database?

  4. Mijn favoriete PostgreSQL-extensies - deel één