Номер строки трассировки стека Oracle не соответствует исходному коду! - PullRequest
3 голосов
/ 11 января 2011

Я получил трассировку стека от Oracle, сказав, что в строке 299 была проблема. Нет проблем, я посмотрел на эту строку в рассматриваемом пакете и сказал, что это строка в блоке инициализации, которая устанавливает переменную в 1,и не вызывает процедуру, которая вызвала ошибку.

Похоже, что существует несоответствие между тем, что выполняет сервер, и тем, что я вижу при просмотре источника пакета, на основе номера строки в трассировке стека.

Как я смотрел напакет: я использовал PL / SQL Developer и нажал «View Pacakge» на имени пакета в браузере объектов.Когда я посмотрел на тот же пакет в управлении исходным кодом, ошибка в строке 299 имеет смысл (это вызов процедуры, которая не удалась).

Итак, мой вопрос: WTF продолжается?Почему я получаю исходный код, который не соответствует номерам строк трассировки стека, когда я спрашиваю у Oracle источник pacakge?

(oracle 10g)

Ответы [ 2 ]

1 голос
/ 11 января 2011

Получается, что мой скрипт ссылался на API_USR.SOME_PACKAGE, и я вошел в систему как READONLY_USR, а READONLY_USR владеет более старой версией SOME_PACKAGE. Когда я смотрел API_USR.SOME_PACKAGE через READONLY_USR, я получил правильный исходный код.

лицо ладони

1 голос
/ 11 января 2011

Я думаю, вы уже открыли исходный код этого пакета в PL / SQL разработчику. Когда вы снова выбираете Просмотр источника, он активирует ранее открытый редактор без перезагрузки источника.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...