2015-11-22 2 views
8

Возможно ли получить строку, содержащую список имен локальных переменных и их значений в любой момент времени, чтобы помочь в отладке (например, добавить строку в таблицу журналов базы данных как текстовая строка)?Дамп локальных переменных PL/SQL

+2

Конечно, это как-то возможно, потому что есть режим отладки в Oracle DB, но я предлагаю вам использовать некоторые IDE, как PL/SQL Разработчик или разработчик Oracle SQL, у которых есть встроенное окно отладки, которое позволяет вам делать именно это - установить точку останова, выполнить вход, увидеть текущие значения переменных и т. Д. – Martina

+0

Лично я не использую отладчики, а регистрирую. В области PL/SQL это специальная таблица журналов, небольшое количество поддерживающего кода PL/SQL, условная компиляция и много хорошо отформатированных ["print" -statements] (http://stackoverflow.com/q/189562/272735) , – user272735

+0

Есть ли общий способ захвата всех локальных переменных для их регистрации. –

ответ

1

Нет, это невозможно.

DBMS_DEBUG может проверять переменные PL/SQL, но для этого требуется, чтобы запущенный сеанс приостанавливался и второй сеанс прикреплялся к нему для проверки.

Я думал о создании API для создания второго сеанса (через DBMS_SCHEDULER), который остановил бы вызывающий сеанс, проверил бы его, перезапустил и отчитал.

Это было бы очень привлекательно, и я не уверен, что это будет поддерживаемый случай использования DBMS_DEBUG.

Короче, ничего.

2

Невозможно получить строку с отладочной информацией, однако используя Sql Developer (инструмент Oracle бесплатно), вы можете DEBUG ваш pl/sql, как обычно, и любой другой инструмент отладки для другого языка, включая VALUE для любой переменной.

Это взято из документации:

Sqldeveloper debug overview

HTH

+0

Этот ответ должен быть информирован об увеличении числа оборотов. Благодарю. – Wolfgang

Смежные вопросы