2015-11-22 25 views
8

È possibile ottenere una stringa contenente un elenco di nomi di variabili locali e i relativi valori in qualsiasi momento per facilitare il debug (ovvero aggiungere a una riga nella tabella di registro del database come una stringa di testo)?Dump di variabili locali PL/SQL

+2

Certamente è in qualche modo possibile perché non v'è modo di debuging in Oracle DB, ma vi consiglio di utilizzare alcune IDE come PL/SQL Sviluppatore o sviluppatore Oracle SQL che ha una finestra di debug incorporata che consente di fare esattamente questo: impostare il punto di interruzione, inserire i valori correnti delle variabili, ecc. – Martina

+0

Personalmente non utilizzo i debugger ma la registrazione. Nell'ambito PL/SQL si tratta di una tabella di registro dedicata, una piccola quantità di codice PL/SQL di supporto, una compilazione condizionale e molti [-statements di stampa "ben formattati (http://stackoverflow.com/q/189562/272735) . – user272735

+0

C'è un modo generico per afferrare tutte le variabili locali per registrarle –

risposta

1

No, non è possibile.

DBMS_DEBUG può ispezionare variabili PL/SQL, ma richiede che la sessione in esecuzione si sospenda e che una seconda sessione si colleghi ad essa per eseguire l'ispezione.

Ho pensato di creare un'API per generare una seconda sessione (tramite DBMS_SCHEDULER) che interromperebbe la sessione di chiamata, la ispeziona, la riavvia e la riporta.

Sarebbe molto coinvolto e non sono sicuro che sarebbe un caso d'uso supportato di DBMS_DEBUG.

In breve, non c'è niente.

2

Non è possibile ottenere una stringa con informazioni di debug, tuttavia utilizzando Sql Developer (strumento Oracle gratuito) è possibile eseguire il DEBUG del pl/sql come al solito anche qualsiasi altro strumento di debug per un'altra lingua compreso il VALUE per qualsiasi variabile.

questo è preso dalla sua documentazione:

Sqldeveloper debug overview

HTH

+0

Questa risposta dovrebbe essere apprezzata da più upvotes. Grazie. – Wolfgang