Взято из Oracle Magazine январь-февраль 2008

Использование Oracle SQLDeveloper для локальной отладки PL/SQL означает, что вы выбираете и присоединяетесь к PL/SQL-программе, используя SQL Developer Connections Navigator. Вы устанавливаете точку останова в том месте, где отладчик должен сделать паузу, и затем нажимаете кнопку Debug. Oracle SQL Developer стартует отладочный сеанс, соединяется с ним, и останавливается, когда достигнет точки останова. При локальной отладке Oracle SQL Developer – это клиент, который инициирует отладку.
Удаленная отладка PL/SQL-кода в Oracle SQL Developer
означает, что вы инициируете отладочную акцию с клиента, внешнего по отношению к Oracle SQL Developer. Внешние клиенты могут быть PL/SQLWeb-приложениями, приложениями Oracle Application Express или сессиями SQL*Plus. Удаленная отладка требует некоторых ручных действий: запуск отладочного листенера Oracle SQL Developer
и присоединение к этому листенеру через сессию базы данных, которую требуется отладить (Удаленная отладка недоступна для баз данных, версия которых ниже Oracle9I Database Release 2).

Следующие шаги описывают пример удаленной отладочной сессии:
1. В Oracle SQL Developer присоединитесь к базе данных, где находится PL/SQL-код. Используйте ту же строку соединения HR_ORCL и пакет EMP_FETCHER, которые использовались ранее.
2. Выберите соединение HR_ORCL в Connections Navigator,
и затем щелкните правой кнопкой мыши и выберите Remote Debug. Откроется диалоговое окно Listen for JPDA.
3. Введите порт и IP-адрес сервера. Теперь вы видите новое окно Run Manager, на котором отображается информация о сервере Debug Listener. (Можно установить Tools -> Preferences -> Debugger -> Prompt for Debugger Host для отладки, когда соединение выполняется через бранмауэр или сессии виртуальных частных сетей [virtual private network – VPN] ).
4. В Connections Navigator выберите тело пакета EMP_FETCHER, затем щелкните правой кнопкой мыши и выберите Edit…, чтобы открыть редактор кода Oracle PL/ SQL. Кликните в левом поле на FUNCTION GET_EMP…, чтобы установить точку останова.
5. Кликните Compile for Debug как показано на Рис. 2.
6. Теперь вы готовы к тому, чтобы начать удаленный процесс отладки со стороны Oracle SQL Developer. Для этого необходимо, чтобы был готов внешний клиент, в данном случае SQL*Plus. Запустите сессию в SQL*Plus для того же самого пользователя базы данных, и введите IP-адрес и порт, заменив на ваши собственные, которые использовались для удаленного подключения в Oracle SQL Developer:
exec DBMS_DEBUG_JDWP.CONNECT_TCP (‘127.0.0.1’, 4000)
7. В SQL*Plus используйте анонимный блок для вызова функции:
DECLARE
EMP_NO NUMBER;
v_Return HR.EMP_REC;
BEGIN
v_Return := EMP_FETCHER.GET_EMP(201);
END;
/
8. Теперь управление передано Oracle SQL Developer и вы можете выполнять код по шагам. Начиная с этого момента процесс такой же, как при локальной отладке.
Стали активны различные отладочные окна. Все они имеют свое назначение, однако важными сразу же становятся:
• Окно Debugging, которое позволяет управлять выполнением программы. Начните отладку, нажимая пиктограмму Step Into.
• Редактор кода, который показывает точку выполнения. Когда отладка выполняется по шагам, при перемещении мыши всплывающие подсказки отображают название и значение переменной под указателем. Продолжайте нажимать Step Into до тех пор пока не достигните строки EMP_RTN:= EMP_REC…. В этой точке дайте мыши переместиться к переменной EMP_FOUND, чтобы увидеть всплывающую подсказку, как показано на Рис. 3.
• Окно Data отображает все переменные, которые действительны в текущем контексте. Перейдя на точку выполнения EMP_RTN := EMP_REC…, выберите закладку Data и раскройте узел EMP_FOUND. Теперь запись заполнена. В этой точке можно просматривать и модифицировать переменные, чтобы увидеть их влияние на процедуру.
9. Продолжайте шаги до тех пор, когда процедура завершится, управление будет передано внешнему клиенту, и отладочная сессия завершится.

Technorati Теги:

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: