Максимальный размер трассировки стека PL/SQL (Oracle 11g)

Я пытаюсь получить трассировку стека pl/sql в Java, когда вызов хранимой процедуры завершается с ошибкой.

Я могу получить доступ к трассировке стека, но размер как-то ограничен. Как увеличить максимальный размер трассировки стека? Я попытался напрямую получить трассировку стека, используя "DBMS_UTILITY.FORMAT_ERROR_BACKTRACE()", но я сталкиваюсь с тем же ограничением.

1 ответ

К сожалению, нет возможности увеличить глубину следа. Вы должны реализовать свой собственный способ отслеживать его глубже. Либо добавьте целое число v_step и продолжайте увеличивать его в разных частях вашего кода (например, хлебные крошки) и возвращайте его вызывающему. Или продолжайте ведение журнала в таблице журнала или любом UTL_FILE в PL/SQL на основе флага отладки.

Итак, вы узнаете, куда вы пришли. Вы можете попробовать вариант отладчика в любой среде IDE, такой как SQL Developer или TOAD, если вы не находитесь за брандмауэром. Но вам нужно запустить PL/SQL с теми же параметрами, которые вы используете в JDBC. Я понимаю, что это больно. Удачи.!

EDIT: Удивительно, что Oracle 12c поставляется с совершенно новым UTL_CALL_STACK(), чтобы получить подробную информацию.

http://technology.amis.nl/2013/06/26/oracle-database-12c-plsql-package-utl_call_stack-for-programmatically-inspecting-the-plsql-call-stack/

licensed under cc by-sa 3.0 with attribution.