PL / SQL - Uscita DBMS

In questo capitolo, discuteremo l'output DBMS in PL / SQL. IlDBMS_OUTPUTè un pacchetto integrato che consente di visualizzare output, informazioni di debug e inviare messaggi da blocchi PL / SQL, sottoprogrammi, pacchetti e trigger. Abbiamo già utilizzato questo pacchetto durante il nostro tutorial.

Esaminiamo un piccolo frammento di codice che mostrerà tutte le tabelle utente nel database. Provalo nel tuo database per elencare tutti i nomi delle tabelle -

BEGIN 
   dbms_output.put_line  (user || ' Tables in the database:'); 
   FOR t IN (SELECT table_name FROM user_tables) 
   LOOP 
      dbms_output.put_line(t.table_name); 
   END LOOP; 
END; 
/

DBMS_OUTPUT Sottoprogrammi

Il pacchetto DBMS_OUTPUT ha i seguenti sottoprogrammi:

S.No Sottoprogramma e scopo
1

DBMS_OUTPUT.DISABLE;

Disabilita l'output del messaggio.

2

DBMS_OUTPUT.ENABLE(buffer_size IN INTEGER DEFAULT 20000);

Abilita l'output del messaggio. Un valore NULL dibuffer_size rappresenta una dimensione del buffer illimitata.

3

DBMS_OUTPUT.GET_LINE (line OUT VARCHAR2, status OUT INTEGER);

Recupera una singola riga di informazioni memorizzate nel buffer.

4

DBMS_OUTPUT.GET_LINES (lines OUT CHARARR, numlines IN OUT INTEGER);

Recupera una matrice di righe dal buffer.

5

DBMS_OUTPUT.NEW_LINE;

Mette un indicatore di fine linea.

6

DBMS_OUTPUT.PUT(item IN VARCHAR2);

Inserisce una riga parziale nel buffer.

7

DBMS_OUTPUT.PUT_LINE(item IN VARCHAR2);

Inserisce una linea nel buffer.

Esempio

DECLARE 
   lines dbms_output.chararr; 
   num_lines number; 
BEGIN 
   -- enable the buffer with default size 20000 
   dbms_output.enable; 
   
   dbms_output.put_line('Hello Reader!'); 
   dbms_output.put_line('Hope you have enjoyed the tutorials!'); 
   dbms_output.put_line('Have a great time exploring pl/sql!'); 
  
   num_lines := 3; 
  
   dbms_output.get_lines(lines, num_lines); 
  
   FOR i IN 1..num_lines LOOP 
      dbms_output.put_line(lines(i)); 
   END LOOP; 
END; 
/

Quando il codice precedente viene eseguito al prompt SQL, produce il seguente risultato:

Hello Reader! 
Hope you have enjoyed the tutorials! 
Have a great time exploring pl/sql!  

PL/SQL procedure successfully completed.