Oracle stack di numero di riga di traccia non corrisponde il codice sorgente!
-
09-10-2019 - |
Domanda
Ho ricevuto una traccia dello stack da Oracle dicendo che c'era un problema sulla linea 299. Nessun problema, ho guardato quella linea nel pacchetto in questione, e dire che si tratta di una linea in un blocco di inizializzazione che imposta una variabile a 1, e non chiama la procedura che ha generato l'errore.
Sembra che ci sia una discrepanza tra ciò che il server è in esecuzione e quello che sto vedendo quando visualizzo l'origine del pacchetto, in base al numero di riga nella traccia dello stack.
Come ho guardato il pacchetto: Ho usato PL / SQL Developer e cliccato su "Vedi Pacakge" sul nome del pacchetto nel browser degli oggetti. Quando ho guardato lo stesso pacchetto di controllo del codice sorgente, un errore sulla linea 299 ha un senso (è una chiamata alla procedura che non).
Quindi la mia domanda è: WTF sta succedendo? Perché ottengo il codice sorgente che non sembra per abbinare i numeri di riga della traccia dello stack quando chiedo Oracle per la fonte pacakge?
(Oracle 10g)
Soluzione 2
Così si scopre che il mio script è stato riferimento a API_USR.SOME_PACKAGE
e mi è stato registrato come READONLY_USR
e READONLY_USR
possiede una versione precedente di SOME_PACKAGE
. Quando ho visto API_USR.SOME_PACKAGE
via READONLY_USR
ho ottenuto il codice sorgente a destra.
faccia di palma
Altri suggerimenti
penso che tu già ottenuto l'origine di quel pacchetto aperto nel sviluppatore PL / SQL. Quando si sceglie di nuovo fonte di vista, si attiva l'editor aperto in precedenza, senza ricaricare la fonte.