Un metodo comunemente usato per il debugging di programmi è quello di includere la dichiarazione di dbms_output.put_line per visualizzare la posizione corrente di esecuzione del programma o dei valori delle variabili del programma.
Quando una funzione o una store procedure viene eseguita in una sessione con l’opzione di uscita ON, Oracle invia l’output di dichiarazione DBMS_OUTPUT in un buffer. SQL Navigator visualizza il contenuto di questo buffer nella finestra di output al termine dell’esecuzione del la funzione o store procedure. Quando si esegue la stessa procedura in una sessione con l’opzione di uscita su OFF, Oracle tratta tutte le chiamate a dbms_output.put_line come NOP (Non funzionante) e non vi è alcun output. Pertanto, la dichiarazione dbms_output.put_line non viene visualizzata nella migrazione nell’ambiente di produzione.
- premi Ctrl+D. per posizionare DBMS_OUTPUT.PUT_LINE(‘ ‘); nella corrente posizione
- Seleziona una variabile e clicca il bottone Debug Variable
oppure
seleziona Debug Variable dal menù Edit > Insert
SQL Navigator posizionerà la stringa DBMS_OUTPUT(‘Value of = ‘||var_name);
Ora vediamo come interpretare l’output display, cioè la finestra di output. La finestra mostra i processi di output con i seguenti colori:
Color | Data type |
---|---|
Blue | Server output |
Red | Error Messages |
Black | Other processing messages |
Per abilitare il debug clicca View > Preferences > General > Session > DBMS Output Buffer dopodiché setta ad ON la finestra di output andando sulla toolbar e premendo l’icona
The Output window toggle button (Session toolbar)
- Setta l’output ad ON sull’icona della connessione al server
- Chiudere la finestra di output non disabilita la funzione di debug
- La finestra di output sarà riaperta se viene eseguita una store procedure in cui c’è una stringa di codice DBMS e l’output è settato ad ON
- L’opzione di output ON deve essere settato per ogni sessione, abilitare l’output per una sessione di un server non la abilita automaticamente in un’altra sessione di un altro server
- L’output di tutte le sessioni è visualizzato nella stessa finestra di output. Il valore di default del buffer di runtime è 32bytes.
Trucchi per disabilitare la finestra di Output
- Se il bottone () risulta premuto per una sessione allora l’output è a ON per quella sessione
- Per determinare se l’output è abilitato o meno per una sessione del DB vai nella lista delle sessioni attive (combo-box) e metti il puntatore sul bottone di Output e vedrai lo stato attuale
- puoi copiare ed incollare il testo nella finestra di output con i tasti CTRL+C e CTRL+V
L’articolo originale è qui