
Отладка в Oracle SQL Developer необходима для анализа работы PL/SQL-процедур, функций и пакетов в реальном времени. Инструмент позволяет устанавливать точки останова, просматривать значения переменных, отслеживать ход выполнения и находить причины ошибок без запуска кода «вслепую».
Для запуска отладки требуется корректно настроенное соединение с базой данных, в которой включены права на отладку для выбранной схемы. Также важно убедиться, что пакет или процедура скомпилированы с опцией Debug, иначе пошаговый контроль будет недоступен.
Oracle SQL Developer поддерживает различные режимы отладки: локальный для анализа кода на клиентской стороне и удалённый для взаимодействия с сервером. В каждом случае разработчик получает доступ к стеку вызовов, списку параметров и может управлять выполнением команд через шаги Step Into, Step Over и Step Out.
Использование встроенных средств отладки помогает не только выявить синтаксические и логические ошибки, но и оптимизировать структуру кода, минимизировать лишние вызовы и повысить стабильность работы приложений, использующих Oracle Database.
Подключение к базе данных для запуска отладки

Для работы отладчика в Oracle SQL Developer необходимо использовать соединение с включённой опцией SYSDBA или пользователем, которому выданы права на отладку. Минимально требуются привилегии DEBUG CONNECT SESSION и DEBUG ANY PROCEDURE.
Откройте вкладку «Connections» и создайте новое соединение. Укажите имя подключения, имя пользователя и пароль. В разделе «Role» выберите значение Default, если права заданы напрямую, или SYSDBA, если используется системный доступ.
В поле «Hostname» укажите IP-адрес или доменное имя сервера, где развернута база. В «Port» по умолчанию используется 1521. В «Service name» необходимо указать точное имя службы из файла tnsnames.ora или конфигурации слушателя.
После сохранения соединения выполните проверку с помощью кнопки «Test». В случае ошибки проверьте доступность порта с клиента и корректность сетевых настроек. Только при успешном подключении отладка станет возможной.
Создание конфигурации отладки в Oracle SQL Developer
Для запуска отладки необходимо заранее определить параметры соединения и указать, какие объекты будут доступны для пошагового выполнения. Конфигурация отладки сохраняется в настройках SQL Developer и может использоваться повторно.
Основные шаги:
| Шаг | Действие |
|---|---|
| 1 | Откройте меню Инструменты → Настройки и выберите раздел Database → Debugger. |
| 2 | Укажите порт прослушивания (обычно 4000). При необходимости измените его на уникальный, чтобы избежать конфликтов. |
| 3 | Создайте новое соединение к базе с ролью, позволяющей выполнять DEBUG CONNECT SESSION и DEBUG ANY PROCEDURE. |
| 4 | В окне проекта щёлкните правой кнопкой по нужной процедуре или пакету и выберите Debug. |
| 5 | В появившемся диалоге настройте параметры вызова: значения входных аргументов, использование анонимного блока, выбор опции Step Into для пошаговой загрузки. |
| 6 | Сохраните конфигурацию через пункт Save, чтобы использовать её повторно без ввода параметров. |
После сохранения можно запускать отладку прямо из контекстного меню объекта или через ранее созданный конфигурационный профиль.
Установка точек останова в хранимых процедурах и функциях

Для анализа выполнения PL/SQL-кода в Oracle SQL Developer удобно использовать точки останова. Они позволяют приостанавливать выполнение процедуры или функции в нужной строке и проверять значения переменных.
- Откройте интересующую хранимую процедуру или функцию в редакторе SQL Developer.
- Переключитесь на режим отладки с помощью кнопки Debug на панели инструментов или через контекстное меню объекта.
- В области кода найдите строку, где требуется приостановить выполнение.
- Щёлкните по серому полю слева от номера строки – появится красный маркер, обозначающий установленную точку останова.
- При необходимости установите несколько точек для контроля разных участков кода.
После запуска отладки выполнение остановится на первой активной точке. В этот момент можно:
- просматривать значения локальных переменных в панели Data;
- использовать шаги Step Into, Step Over, Step Out для точного анализа логики;
- динамически изменять значения переменных через контекстное меню;
- удалять или временно отключать точки останова без перезапуска сессии.
Точки останова сохраняются в текущей сессии и позволяют эффективно управлять процессом пошаговой отладки.
Запуск отладчика и выбор целевого объекта

Для начала отладки в Oracle SQL Developer необходимо указать объект PL/SQL, который будет выполняться под управлением отладчика. Это может быть процедура, функция или пакет.
- Откройте соединение с базой данных, где расположен объект.
- В дереве соединений найдите схему и раскройте раздел Procedures, Functions или Packages.
- Выберите нужный объект и щёлкните правой кнопкой мыши.
- В меню выберите пункт Debug. SQL Developer откроет новое окно запуска с параметрами.
Если объект принимает аргументы, необходимо указать их значения перед началом выполнения:
- Для скалярных параметров укажите конкретные значения.
- Для параметров с типом OUT или IN OUT оставьте пустое значение – отладчик создаст переменные автоматически.
- Для сложных типов (например, записи или коллекции) используйте выражения, совместимые с PL/SQL.
После подтверждения параметров нажмите OK, и отладчик установит соединение с сервером в режиме отладки. При первом запуске может потребоваться разрешение на отладку, которое задаётся в параметрах подключения (Debug Privileges).
Выбранный объект будет запущен в отладчике, и управление передаётся на первую доступную точку останова или на первую строку тела программы, если точек останова нет.
Пошаговое выполнение кода и просмотр переменных

Для запуска пошаговой отладки откройте процедуру или функцию в редакторе и установите точки останова на строках, где требуется контроль исполнения. Точка останова задаётся кликом в левом поле напротив строки кода.
Начните отладку через меню Debug → Debug или сочетание клавиш Shift+F9. После подключения к целевой схеме откроется панель управления отладкой.
Используйте команды управления: Step Into (F7) для входа в вызываемую процедуру, Step Over (F8) для выполнения строки без входа внутрь вызова, Step Out (Ctrl+Shift+F7) для выхода из текущей подпрограммы. Кнопка Resume (F9) продолжает выполнение до следующего останова.
Окно Data отображает значения локальных переменных и параметров. Для отслеживания интересующих выражений добавьте их вручную в окно Watches через контекстное меню. Переменные обновляются автоматически при переходе на следующую строку.
При работе с курсорами и коллекциями значения раскрываются в древовидном виде, что позволяет просматривать отдельные элементы. При необходимости можно изменять значение переменной во время отладки через команду Set Value.
Все изменения и переходы фиксируются в окне Debugger Log, где отображаются выполняемые строки и сообщения сервера. Это позволяет анализировать логику выполнения кода в реальном времени.
Использование окон Watches и Breakpoints
Окно Breakpoints позволяет установить точки прерывания на конкретные строки PL/SQL-кода. Чтобы добавить breakpoint, кликните правой кнопкой мыши на номере строки и выберите Toggle Breakpoint. В списке Breakpoints отображаются все активные точки с указанием состояния (enabled или disabled), типа (line или exception) и условий срабатывания. Для сложных сценариев можно задать условие, например v_salary > 50000, чтобы остановка происходила только при выполнении этого условия.
Окно Watches используется для мониторинга значений переменных во время выполнения отладки. Чтобы добавить переменную в Watches, выделите её в коде и выберите Add Watch. Значения автоматически обновляются на каждой остановке отладчика. Можно следить за выражениями, например v_salary * 1.1, чтобы оценивать динамические вычисления без изменения кода.
Для эффективной отладки рекомендуется комбинировать Breakpoints и Watches: сначала установить точку прерывания на критическом участке кода, затем добавить в Watches ключевые переменные. Это позволяет выявлять ошибки в логике вычислений и контролировать изменение состояния данных без лишних итераций запуска.
Дополнительно Breakpoints можно временно отключать через контекстное меню или полностью удалять. В Watches можно менять тип отображения значения, например Hex или String, для упрощения анализа сложных структур данных. Систематическое использование этих окон ускоряет локализацию проблем и минимизирует необходимость дополнительного логирования.
Сохранение и повторное использование настроек отладки
После настройки точек останова, параметров вызова процедуры и фильтров сессий в Oracle SQL Developer можно сохранить конфигурацию для последующего использования. Для этого откройте меню Run → Debug Configurations. Выберите существующую конфигурацию или создайте новую через кнопку New. Укажите имя конфигурации и сохраните текущие параметры вызова процедуры, включительно с входными значениями и схемой подключения.
Сохранённые конфигурации отображаются в списке Debug Configurations и могут быть запущены повторно без повторной установки точек останова. Для обмена настройками между разработчиками экспортируйте конфигурацию через кнопку Export в формате XML. Импорт выполняется через Import в аналогичном меню. Файл содержит полные параметры отладки, включая значения bind-переменных и активные условия остановки.
Для регулярного тестирования одной и той же процедуры рекомендуется создавать отдельные конфигурации под разные сценарии. Например, одна конфигурация с небольшим набором данных для быстрого теста, другая с полным объёмом для проверки производительности. При необходимости параметры конфигурации можно редактировать без создания новой, корректируя входные значения или подключение к другой схеме.
Использование сохранённых конфигураций повышает эффективность отладки, сокращает риск пропуска точек останова и обеспечивает точное воспроизведение тестовых сценариев в различных сессиях SQL Developer.
Вопрос-ответ:
Как запустить отладку процедуры в Oracle SQL Developer?
Для запуска отладки необходимо открыть процедуру в редакторе кода, затем выбрать пункт меню «Debug» или нажать соответствующую кнопку на панели инструментов. После этого система предложит задать параметры, если они требуются, и инициирует выполнение процедуры по шагам, останавливаясь на точках останова.
Что такое точки останова и как их использовать?
Точка останова — это место в коде, где выполнение приостанавливается, чтобы можно было просмотреть значения переменных и ход выполнения. Чтобы поставить точку останова, кликните слева от нужной строки в редакторе кода. При запуске отладки выполнение остановится на всех установленных точках, что позволяет анализировать процесс пошагово.
Можно ли отлаживать пакеты и функции, а не только процедуры?
Да, Oracle SQL Developer позволяет отлаживать не только процедуры, но и функции, а также пакеты. Для этого необходимо открыть объект в редакторе, поставить точки останова в нужных местах и запустить режим отладки. При этом следует учитывать, что для функций потребуется либо вызвать их через анонимный блок PL/SQL, либо использовать специальные команды для тестирования.
Как просматривать значения переменных во время отладки?
Во время остановки на точке останова SQL Developer отображает окно «Variables», где перечислены все текущие переменные и их значения. Также можно добавлять выражения в окно «Watch», чтобы отслеживать их изменение в процессе выполнения. Это позволяет анализировать, как изменяются данные на каждом шаге выполнения кода.
Какие ошибки часто возникают при отладке и как их исправить?
Чаще всего встречаются ошибки, связанные с отсутствием привилегий на выполнение процедуры, неправильными параметрами или некорректными типами данных. Также могут возникнуть проблемы с синтаксисом или блокировками таблиц. Исправление требует проверки прав доступа, проверки входных данных и анализа кода. Если отладка не запускается, стоит убедиться, что подключение к базе поддерживает выполнение отладочных операций.
