Oracle
 sql >> Baza danych >  >> RDS >> Oracle

PL/SQL:jak monitować użytkownika o wprowadzenie danych w procedurze?

PL/SQL to język do pisania programów autonomicznych. Nie jest przeznaczony do interakcji użytkownika. Wartości wejściowe są przekazywane jako parametry.Twój program powinien więc wyglądać tak

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

Zauważ, że nie ma potrzeby DECLARE z nazwaną procedurą. Sekcja między AS i BEGIN służy do deklarowania zmiennych, tak jak to zrobiłem z l_salutation .

Możesz podać wartości tych parametrów podczas wywoływania programu. W SQL*Plus działałoby to tak:

SET SERVEROUTPUT ON

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

exec HELLO (&p1, '&p2')


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Funkcja JSON_TABLE() w Oracle

  2. Kopia zapasowa online vs offline

  3. ORA-27154 / ORA-27146

  4. Połącz wyniki z zapytania SQL w Oracle

  5. Czytanie clob linia po linii z pl\sql