Pl sql developer как выполнить запрос
Перейти к содержимому

Pl sql developer как выполнить запрос

  • автор:

Что делать, если скорость исполнения запросов в PL/SQL вас не устраивает?

Oracle SQL Developer – полностью бесплатное приложение. Поэтому скачивание его не вызовет никаких проблем у пользователя.

Данная среда разработки позволяет соединиться с любой целевой схемой базы данных Oracle при использовании стандартной аутентификации Oracle Database. После подключения можно выполнять операции с объектами в базе данных.

Приложение дает разработчикам баз данных удобный способ выполнения основных задач:

  • Просмотр и управление объектами базы данных
  • Выполнение операторов SQL и скриптов
  • Редактирование и отладка кода PL/SQL
  • Импорт и экспорт данных
  • Просмотр и создание отчетов

Более того, при помощи Oracle SQL Developer можно соединиться со схемами для выбранных сторонних (не Oracle) баз данных, таких как MySQL, Microsoft SQL Server и Microsoft Access, а также просматривать метаданные и данные в этих базах данных.

Плюсы использования

Проверить быстроту выполнения запросов в данной среде разработки вы можете самостоятельно. Вспомните SQL-запрос, который в PL/SQL Developer «крутится» более 10 минут, и запустите его.

Мы с коллегами, например, выполняя рядовые выгрузки, ощутили прирост в скорости примерно в 5-7 раз! Достаточно весомый аргумент, чтобы обратить внимание на данное приложение.

Oracle SQL Developer подойдет тем людям, которые любят смотреть, что получается на выходе после малейшего изменения в запросе.

А также для исполнения запросов, в которых в where указано очень много условий: длинный список клиентов через or (Рис. 1) или, например, имеется много строк с like (Рис. 2).

Немаловажно знать, как осуществляется экспорт полученных в ходе выполнения запроса данных. Воспользуемся встроенными возможностями экспорта Oracle SQL Developer:

  1. Начнем с того, что после отработки запроса на экране будет представлена лишь часть полученных данных. Чтобы «прогрузить» данные до конца можно воспользоваться колесиком мышки, а можно нажать сочетание клавиш Ctrl+End.
  2. Чтобы сохранить данные в таблицу Excel необходимо в результирующей таблице перейти в контекстное меню и выбрать Export (Рис. 3).

3. Задаем необходимый формат файла – Format (Рис. 4 – ШАГ 1). В нашем случае это «excel 2003+ (xlsx)».

Выбираем путь, куда будет сохранен файл – Browse (Рис. 4 – ШАГ 2). Здесь же указываем имя файла.

Нажимаем последовательно на кнопки «Следующий» и «Готово» (Рис. 4 – ШАГ 3).

4. Процесс экспорта данных будет демонстрироваться в отдельном окне.

По завершении экспорта, в указанной нами директории появится Excel-файл: на листе «Export Worksheet» представлены выгруженные данные, а на листе «SQL» – скрипт, с помощью которого они были получены. Таким образом, можно в нужный момент вспомнить, откуда тот или иной файл взялся у вас на компьютере.

Еще одним немаловажным плюсом Oracle SQL Developer является его кросс-платформенность: можно запускать на Windows, Linux и macOS.

Некоторые особенности использования

Стоит сказать об умении определять границы SQL-запросов. Oracle SQL Developer требует обязательно отделять запросы точкой с запятой, а иначе он не будет понимать, где один запрос закончился, а другой начался.

Конечно, прирост в скорости исполнения запросов влечет за собой большую ресурсоемкость. Прежде всего это касается оперативной памяти компьютера . Данный факт, безусловно, является недостатком данной среды разработки.

Интерфейс Oracle SQL Developer также можно отнести к минусам, т.к. без специальной статьи тяжело сразу понять, куда нужно нажимать.

При возникновении проблем с подключением и настройкой Oracle SQL Developer, в конце статьи будет приведена пошаговая инструкция «Как начать работу с Oracle SQL Developer».

Исходя из выше изложенного оптимальный вариант использования Oracle SQL Developer – это выполнение и промежуточное тестирование действительно «тяжелых» SQL-запросов. А встроенные возможности экспорта помогут легко сохранить полученные данные.

Также не стоит забывать о том, что данный продукт является совершенно бесплатным . Возможно, для кого-то Oracle SQL Developer станет отличным инструментом для тестирования тех или иных скриптов в домашних условиях (кросс-платформенность позволит работать не только на Windows), а для тех, кто только начинает знакомство с SQL-запросами, весьма удобной «учебной» средой разработки.

Как начать работу с Oracle SQL Developer

После успешной установки и запуска Oracle SQL Developer необходимо:

  • Создать новое соединение с источником данных. Это можно сделать из меню File → New → Connections, а также из окна Connections, нажав на значок «+» (Рис. 5).

Где смотреть результат выполнения запроса в PL/SQL Developer?

Добрый день,
ранее работала в Oracle SQL Developer, сейчас, при переходе в PL/SQL Developer, столкнулась с проблемой: при запуске запроса не могу найти результат. Как найти\включить окно с результатами?

  • Вопрос задан более двух лет назад
  • 1736 просмотров

2 комментария

Простой 2 комментария

insighter

Какая версия программы, что именно (в программе) открываете для выполнения запроса?
ma23 @ma23 Автор вопроса

Просто выполняю запрос окне. Что Вы имеете в виду «что именно (в программе) открываете для выполнения запроса» ?

Решения вопроса 1

Там нужно открыть SQL Window, затем ввести запрос, нажать F8 и внизу должна подгрузиться выборка (по умолчанию первые 20 строк кажется).

6127c7ace50a5896893102.jpeg

Ответ написан более двух лет назад
Комментировать
Нравится 1 Комментировать
Ответы на вопрос 1

Речь шла про найти, а значит речь не про вывод dataset простого селекта. Вероятно, тут вопрос в другом. я предположу, что вопрос звучал более точно так:
А) как при использовании pl/sql developer в вкладке ‘command window’ посмотреть на результат при использовании вывода в dbms_output.put_line?
Ответ: если не отображается на экран инфа от dbms_output.put_line, взведите перед pl скриптом
set serveroutput on

но может вопрос звучит иначе:
Б) как при использовании pl/sql developer в вкладке ‘sql window’ посмотреть на результат при использовании вывода в dbms_output.put_line?
тут результат в привычном для этого окна месте не будет снизу экрана. а появится в окне выполнения вторая подвкладка «output». Там и будет результат от вывода.

Ответ написан более двух лет назад
Комментировать
Нравится Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

oracle

  • Oracle
  • +1 ещё

Как сделать двойной SELECT из одной и той же таблицы?

  • 1 подписчик
  • 12 апр.
  • 148 просмотров

# PL/SQL Developer. 2. Выполнение запросов и редактирование данных.

PL/SQL Developer откртиые нового Sql-окна

Пишем запрос, нажимаем F8 или кнопку на панели инструментов и получаем таблицу — результат запроса.

PL/SQL Developer выполнение запроса

Если в результате запроса возвращается много строк то сразу все они не загружаются. Загружаются столько строк сколько помещается на экране, для загрузки остальных строк становятся активны две кнопки

PL/SQL Developer загрузка всех строк

Чтобы загрузить все записи нужно нажать правую.

# История запросов

Если отправить несколько запросов подряд то справа становятся доступны кнопки по которым можно переключатся по истории запросов. Кнопка «вверх» отобразит предыдущий отправленный запрос, а кнопка «вниз» следующий.

PL/SQL Developer навигация по истории запросов

# Экспорт результатов запроса

Часто результат запроса нужно экспортировать, для этого есть отдельная кнопка. Экспортировать можно в том числе в виде Sql скрипта который будет содержать insert’ы выбранных записей

PL/SQL Developer экспорт запроса

# Режим просмотра одиночной записи

В случае если в таблице много полей бывает полезен режим просмотра одиночной записи. В этом случае выводится таблица с двумя столбцами — название поля и значение. Переключение по записям происходит по кнопкам на панели инструментов.

PL/SQL Developer режим просмотра одной записи

# Редактирование данных, которые вернул запрос

Для того чтобы отредактировать записи, которые попали в выборку, в запрос нужно добавить специальное поле rowid. Теперь после нажатия на кнопку с замком, активируется режим редактирования, в котором доступны кнопки для добавления и удаления записей.

PL/SQL Developer включение режима редактирования данных

PL/SQL Developer добавление и удаление строк

Редактирование осуществляется в самой таблице

PL/SQL Developer редактирование строки

Для сохранения изменений нужно нажать две кнопки — Post и Commit.

PL/SQL Developer сохранение изменений

Откатить не зафиксированные изменения можно кнопкой Rollback

Отладка в PL/SQL Developer

Привет! Меня зовут Алексей Маряхин, я работаю разработчиком на Oracle и пишу много, очень много кода. И когда программа ведёт себя не так, как ожидалось, на помощь приходит отладка.

Не так давно выяснил, что не все разработчики владеют функционалом отладки или знают её фичи. А если код сложный и баги искать всё равно надо? Литературы на русском языке про отладку практически нет.

Тогда я собрал подробный гайд для коллег и провёл внутренний семинар по обмену опытом. Материал получился настолько подробным и полезным, что решил поделиться им с сообществом программистов. На примере инструментов для работы с СУБД Oracle, которые используются у нас в компании, посмотрим, как работает отладка, сравним их в теории и узнаем, что внутри.

В серии из двух статей подробно расскажу о способах, инструментах и нюансах отладки кода PL/SQL. Первая часть — про инструмент PL/SQL Developer. Поехали!

Отладка: что и зачем. Настройка окружения

Отладка программного кода значительно упрощает его написание: можно сразу отлаживать алгоритмы и проверять, что происходит на каждом шаге. В существующем коде она ускоряет поиск ошибок и, как следствие, их исправление. Возможность полноценной пошаговой отладки существует и для PL/SQL.

Oracle предоставляет интерфейс для отладки в виде DBMS-пакетов — DBMS_DEBUG и DBMS_DEBUG_JDWP. Отлаживать можно хранимые объекты Oracle с SQL-кодом: procedure, function, package, package body, trigger, anonymous block, object type, object type body.

Помимо своих сессий, можно удалённо отлаживать код «чужих» сессий, а ещё по описанию в документации Oracle — хранимый Java-код. Но это отдельная тема со своими инструментами, и нужна другая среда разработки, её мы не проверяли.

Чтобы отладка стала функциональным инструментом, сэкономила время и упростила поиск критичных ошибок, перед началом работы нужно выполнить ряд настроек.

Права

Для запуска отладки необходимо выдать права пользователю, в сессии которого хотим выполнять отладку. Это обязательный пункт, без него отладка работать не будет:

-- Под SYS: GRANT DEBUG CONNECT SESSION TO ;

Эти права дают пользователю возможность выполнения отладки объектов своей схемы.

Если есть необходимость отладки объектов, расположенных в других схемах, то можно отдельно дать права на отладку конкретных объектов:

-- Под пользователем схемы-владельца объекта, который нужно отлаживать: GRANT DEBUG ON TO ;

Также есть возможность выдать права на отладку любого объекта БД, доступного для пользователя в его или других схемах:

-- Под SYS: GRANT DEBUG ANY PROCEDURE TO ;

Включение отладки для объектов

Чтобы отладка хранимого объекта стала возможной, необходимо скомпилировать его с добавлением отладочной информации.

Сделать это можно через контекстное меню объекта в PL/SQL Developer — пункт «Add debug information» (важно: данное действие приведёт к перекомпиляции объекта!):

Те же действия можно выполнить командой компиляции (ALTER PACKAGE Statement):

-- На примере пакетов, но для хранимых процедур или функций синтаксис аналогичный: ALTER PACKAGE COMPILE PLSQL_DEBUG = TRUE; -- Или ALTER PACKAGE COMPILE DEBUG; -- Или ALTER PACKAGE COMPILE PLSQL_CCFLAGS = 'debug:TRUE';

Рекомендованный Oracle вариант (см. COMPILE clause):

ALTER PACKAGE COMPILE PLSQL_OPTIMIZE_LEVEL = 1;

Также включить отладочную информацию можно на уровне сессии:

ALTER SESSION SET PLSQL_CCFLAGS = 'debug:TRUE'; -- Или ALTER SESSION SET PLSQL_DEBUG = TRUE; -- Или (рекомендованный враиант) ALTER SESSION SET PLSQL_OPTIMIZE_LEVEL = 1;

Эти команды не перекомпилируют существующие объекты, а только сообщают компилятору, что всё, что будет далее скомпилировано в этой сессии, будет снабжено отладочной информацией. То есть, чтобы включить отладку для какого-то уже существующего объекта, его всё равно нужно будет перекомпилировать в этой сессии.

Проверить включение отладки для объекта можно запросом:

SELECT * FROM USER_STORED_SETTINGS s WHERE s.object_name = 'PK_DEBUG_DEMO';

Шаги отладки

Подготовка скрипта

Для отладки в PL/SQL Developer есть специальный тип окна — «Test window».

Создаём отладочный скрипт одним из способов:

  1. Вручную: открываем тестовое окно — меню File >New >Test Window. Код скрипта пишем вручную.
  2. Из контекстного меню программного объекта: заходим в нужный пакет, вызываем контекстное меню для нужной процедуры или функции (только для public-методов), выбираем пункт «Test»:

В этом случае также откроется тестовое окно, но скрипт отладки будет сформирован автоматически. При этом все параметры будут автоматически добавлены в список bind-переменных скрипта (только для простых типов, сложные типы будут вынесены в блок DECLARE с пометкой, что для них нужна специальная обработка):

Настройка переменных скрипта

В тестовом скрипте есть возможность задания bind-переменных. Синтаксис стандартный для Oracle: двоеточие + имя переменной, например, «:1» или «:res».

Список bind-переменных отображается в таблице в нижней части тестового окна. Для обновления списка переменных можно использовать контекстное меню таблицы — пункт «Scan Variables»:

При этом все bind-переменные будут добавлены в таблицу, нужно будет только при необходимости поменять для них тип (по умолчанию добавляются с типом String). Также, при запуске скрипта все переменные будут добавлены в таблицу автоматически (если в настройках включён соответствующий параметр; по умолчанию включён).

Для некоторых типов переменных существуют такие особенности:

  1. LOB. Есть две категории таких типов — обычные CLOB / BLOB, а также Temporary CLOB / Temporary BLOB. Первые требуют дополнительной инициализации на сервере, и простой ввод данных в текстовое поле для них не имеет эффекта — в скрипт эти данные передаваться не будут (хотя сами данные ввести можно). Вторые могут содержать данные ещё до выполнения скрипта.
  2. Cursor. После выполнения скрипта содержимое курсора можно посмотреть, нажав кнопку «. » справа в поле с этой переменной.

Запуск

Для запуска пошаговой отладки нажимаем «Start debugger»:

После этого окно перейдёт в режим отладки: станут активными кнопки управления отладкой, и будет подсвечена текущая строка, на которой остановлено выполнение:

Пошаговая отладка

Команды пошаговой отладки

Команда

Описание

Выполнить скрипт до конца или до следующей точки остановки

Зайти внутрь процедуры или функции, находящейся на текущем шаге отладки. Для DML-операторов данная кнопка приведёт ко входу в соответствующий триггер, если он есть для таблицы

Пройти шаг отладки без захода в процедуру или функцию (внутрь зайдём, только если во вложенном методе есть точка остановки)

Выйти из текущей процедуры или функции на уровень выше — в код, из которого зашли в эту процедуру или функцию в режиме Step into

Run to cursor line

Выполнить до строки, в которой установлен курсор

Run to next exception

Выполнить до следующего исключения. Выполнение прервётся на строке, где на следующем шаге будет поднято исключение

Execute SQL in debug session.

Выполнить SQL-запрос в текущей сессии отладки

Точки прерывания

Для прерывания выполнения кода в нужном месте можно использовать точки прерывания. По ним разработчик может уточнить состояние исполняемого кода (значения переменных, состояние данных, текущий стек вызовов), чтобы определить, правильно ли ведёт себя программа. После остановки на точке прерывания есть возможность продолжить выполнение кода в режиме пошаговой отладки или выполнить до конца (или до следующей точки).

Что важно знать про работу с точками прерывания:

  • Нужны для прерывания выполнения кода на указанной строке.
  • Имеют эффект только на строках, содержащих исполняемые инструкции. То есть не будут работать в комментариях или в середине инструкции.
  • Имеют эффект только для объектов, скомпилированных с добавлением отладочной информации (см. Включение отладки для объектов). То есть в анонимных блоках ставить нельзя.
  • Точка применяется к номеру строки объекта (согласно номеру из dba_source). То есть, если установить точку в неактуальном объекте (в ещё не скомпилированной версии объекта), то она будет учитываться при отладке (если в dba_source на этой строке находится исполняемая инструкция), но поведение будет отличаться от ожидаемого, так как фактически точка установлена на другой строке.
  • Ставятся локально для данного экземпляра PL/SQL Developer. Другие пользователи не будут видеть установленные вами точки прерывания.
Установка

Установка точки происходит стандартно, достаточно нажать на номер строки в объекте, в результате чего отобразится соответствующая иконка:

Установить точку можно как непосредственно в нужном объекте, открыв его для просмотра или редактирования, так и из скрипта отладки, когда отладка уже в процессе.

В самом тестовом скрипте точки остановки устанавливать нельзя — только в скомпилированных объектах. Поэтому, если код самого скрипта сложный и для его отладки требуются точки прерывания, нужно оформить его как хранимую процедуру, и уже её вызывать из тестового скрипта.

Управление точками прерывания также доступно через контекстное меню (правой кнопкой на номер строки). Через это же меню можно включить или отключить ранее установленную точку, а также открыть панель управления точками прерывания.

Настройка параметров

Для настройки параметров точки нужно открыть окно управления точками прерывания через контекстное меню «Modify breakpoint». Откроется окно со списком всех установленных точек и их параметрами:

  • Use Condition. Можно задать условие прерывания в данной точке в виде SQL-выражения. Например, :var = ‘hello’ , где var — имя переменной в отлаживаемом коде.
  • Use Message. При проходе через точку в output будет выводиться указанное здесь сообщение. Можно указывать подстановочные переменные типа «[Date]» (текущая дата), «[Pass]» (количество проходов в этой точке) (полный список см. в выпадающем меню под текстовым полем), а также значения переменных из PL/SQL-кода в формате «[:var]», где var — имя переменной (в том числе поддерживаются переменные сложных типов — массивы, структуры).
  • Don’t Break. Не прерывать выполнение. Используется в сочетании с Use Message, когда нужно только вывести сообщение в лог (output скрипта; так называемые Logpoint или Tracepoint).
  • Use Pass Count. Условие на количество проходов. Например, если указать 10, то выполнение будет останавливаться только каждый 10-й проход. Удобно для отладки циклов.
Возникновение исключений

Для поиска мест в коде, в которых возникает исключение, может быть полезен функционал остановки выполнения по видам ошибок Oracle.

Точки прерывания для ошибок (Error breakpoint) позволяют остановить выполнение на инструкции, в которой возникло исключение. При этом остановка происходит на шаг раньше поднятия исключения, что позволяет посмотреть место в коде и значения переменных, которые привели к исключению.

Для установки таких точек нужно задать коды ошибок, при возникновении которых требуется остановить выполнение. Делается это через меню «Modify breakpoints. » на вкладке «Error breakpoints». Сами точки на строке кода при этом ставить не нужно.

Например: создадим пакет с функцией, где происходит деление. Создаём скрипт, который приведёт к делению на ноль, и в «Error breakpoints» указываем ошибку деления на ноль:

Запустим скрипт под отладкой и выполним его до конца. Видим, что выполнение прервалось на инструкции, где возникло исключение деления на ноль, но отладка ещё активна, и можно посмотреть значения переменных:

Значения переменных

Просмотр в режиме отладки

Посмотреть значения переменных в режиме отладки можно двумя способами: 1) навести курсор на переменную (значение отобразится во всплывающей подсказке); 2) добавить переменную в область просмотра в нижней таблице окна отладки, либо прописав там имя переменной вручную, либо добавив её через меню «Add variable to Watches».

Переменные сложных типов

Довольно часто в PL/SQL-коде приходится использовать переменные сложных типов — коллекции и структуры. Возможности отладчика для таких типов ограничены, но, тем не менее, есть несколько полезных функций и для них:

  1. Коллекцию простых типов можно посмотреть целиком через контекстное меню «View collection variable»:

Если навести курсор на переменную, то значение будет вычисляться по всей подстроке. Например, для la_str_arr(i) отладчик попытается вычислить значение всей конструкции с учётом индекса i . Если нужно посмотреть значение не всей строки, а только её части, то эту часть нужно выделить — тогда отладчик будет пытаться вычислить значение только для выделенного текста. Например, если навести курсор на переменную типа «структура», то отобразится значение конкретного свойства:

Но если выделить саму структуру и навести курсор на выделенный текст, то отобразится вся структура целиком:

  1. Для коллекций добавить переменную в область просмотра можно как в виде конкретного элемента с указанием его индекса, например la_str_arr(1) , так и с переменной индекса, la_str_arr(i) . Если в контексте текущей исполняемой строки кода индекс задан, то значение будет вычислено.
  2. Если для структуры выполнить Add variable to watches из контекстного меню, то в список переменных будут добавлены все поля структуры:

Имеет эффект только для плоской (одноуровневой) структуры, без вложенных других структур или массивов.

Установка значений переменных

В режиме отладки есть возможность установки значений для переменных простых типов и для коллекций простых типов. Делается это через контекстное меню, команда «Set variable». В окне в поле ввода отобразится текущее значение переменной — указываем новое, нажимаем Enter (без этого значение не применится):

Выполнение запросов в сессии отладки

Ещё одна крайне полезная функция — возможность выполнения SQL- или PL/SQL-кода прямо в сессии отладки.

Позволяет просматривать и изменять данные непосредственно в процессе отладки, и таким образом проверять, как отлаживаемый скрипт влияет на данные. Также при необходимости можно изменять данные.

Для выполнения запроса в сессии отладки нажимаем «Execute SQL in debug session. », в открывшемся окне вводим текст запроса:

Результат выполнения откроется в отдельном окне:

Важно учитывать, что все выводимые в таком случае поля будут приведены к строке с ограничением в 1000 символов. Числовые поля и даты будут сконвертированы в строку согласно NLS-настройкам сессии отладки.

Для выражений SELECT есть ограничения к наименованиям полей: у них должны быть уникальные имена. Для повторяющихся названий полей необходимо присвоить уникальный псевдоним.

В сессии отладки можно выполнять любые DML-конструкции — SELECT, INSERT, UPDATE, DELETE, MERGE, изменять состояние сессии (ALTER SESSION SET. ), а также управлять транзакцией (COMMIT / ROLLBACK).

Кроме DML можно выполнять и PL/SQL-код. Например:

BEGIN DBMS_OUTPUT.put_line(PK_DEBUG_DEMO.get_order(19014)); END;

Результат такого запроса будет выведен в output сессии отладки.

Стоит заметить, что парсер этого окна довольно капризный. Он может выдавать ошибки на вполне правильный с точки зрения синтаксиса код, поэтому писать его лучше как можно более просто. Например, если в начале скрипта будет закомментированная строка, то такой код уже будет считаться некорректным. И также ошибки могут возникать при добавлении в код блочных комментариев, при слишком большом количестве полей в запросе и т. д.

Особенности отладки в PL/SQL Developer

1. В самом тестовом скрипте нельзя ставить точки остановки, поэтому если нужно проверить сложный скрипт с большим количеством вызовов и циклов, то лучше оформить его в виде пакета или хранимой процедуры или функции.

2. В некоторых случаях при отладке может не работать отображение значений переменных. Связано это с наличием в коде определённых конструкций (использование пользовательских типов), см. SQL Developer doesn’t step into code (для SQL Developer проблема также актуальна). В таком случае можно сделать копию пакета, удалив мешающий код и оставив только те процедуры или функции, которые собираемся отлаживать.

3. Если уже открытый в Test window объект изменился, нужно обновить его, закрыв соответствующую ему вкладку (переключиться на вкладку объекта, закрыв его через контекстное меню «Close page»). Иначе для него будет отображаться неактуальное содержимое, и текущая отображаемая исполняемая строка может не совпадать с фактической. После закрытия вкладки она снова будет открыта при следующем запуске, когда отладчик дойдёт до кода этого объекта.

4. Есть проблема с зависанием приложения при отладке. В этом случае может помочь убийство сессии отладки из другого экземпляра PL/SQL Developer. По поводу зависания есть даже баг, где в качестве решения проблемы Oracle просто рекомендует не использовать PL/SQL Developer для отладки…

5. В качестве механизма отладки в PL/SQL Developer используется системный пакет DBMS_DEBUG, который помечен как deprecated начиная с 19-й версии Oracle. Актуальным механизмом отладки на данный момент является Java Debug Wire Protocol (пакет DBMS_DEBUG_JDWP). Он, например, используется в SQL Developer.

6. Окно Test window имеет удобный функционал с bind-переменными, которые можно использовать для запуска обычных скриптов, без отладки. Особенно это актуально для переменных типа CLOB и BLOB: их можно легко передать на вход скрипта через bind-переменные без необходимости вставлять их прямо в скрипт. И так же с выходными переменными: не нужно заморачиваться с выводом результатов в output, результат можно увидеть прямо в этих переменных. Особенно актуально для типа BLOB, например, когда функция возвращает бинарный файл, типа PDF или изображения. В таком случае объявляем bind-переменную типа BLOB, передаём в неё результат функции, сохраняем результат в файл или открываем содержимое для просмотра прямо из PL/SQL Developer.

Подведём итоги

Функционал отладки в PL/SQL Developer достаточно прост и интуитивно понятен. Есть удобные функции, вроде bind-переменных и выполнения запросов в сессии отладки. Есть подробная документация.

Но есть и минусы — нестабильная работа (зависания), ограничения по просмотру значений переменных. Также вызывает вопросы использование устаревшего механизма отладки DBMS_DEBUG. И стоит ещё учитывать, что инструмент платный.

Итак, мы рассмотрели базовый функционал отладки в PL/SQL Developer и некоторые нюансы использования отладки в этом инструменте. Надеюсь, что статья была полезна и как-то упростит жизнь разработчикам на Oracle; делитесь мнением в комментариях!

Дальше в планах — ещё одна статья про отладку. Посмотрим ближе на другой инструмент — SQL Developer, у которого есть свои особенности и возможности, типа удалённой отладки. Не переключайтесь!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *