Предлагаю вниманию читателей перевод одной статьи. Она понравилась мне объяснением возможностей удалённой отладки, и я решил перевести её целиком. Надеюсь, она пригодится...
Сила двух
Дэвид Пик
Перевод: Александр Поливаный
Использование Oracle SQL Developer при разработке в Oracle Application Express.
Oracle Application Express (Oracle APEX) и Oracle SQL Developer (OSD) — это бесплатные инструменты, оба работающие с Oracle Database версии 9.2 и выше. OSD не только помогает Вам в разработке приложений БД, но также даёт Вам возможности просмотра, экспорта, импорта, внедрения и удалённой отладки Ваших приложений Oracle APEX.
Эта статья покажет, как OSD и Oracle APEX работают вместе, способствуя разработке. Мы увидим, как можно просматривать информацию о приложениях Oracle APEX из OSD. Затем мы пройдёмся по примеру удалённой отладки PL/SQL-кода, выполняющегося в браузерном приложении, из OSD.
Введение
Используя OSD в связке с Oracle APEX, Вы можете просматривать несколько приложений и страниц и быстро добираться до конкретных данных. К примеру, в Oracle APEX Вам потребуется два браузера, чтобы глядеть* на код двух списков значений (list of values, LOV) в двух разных приложениях одновременно. В OSD всё, что нужно - развернуть оба приложения в списке подключений (Connections). Также OSD специально для Oracle APEX предоставляет несколько очень полезных и подробных отчётов о приложениях, страницах, схемах и рабочих пространствах (категория Data Dictionary Reports в отчётах).
OSD позволяет Вам экспортировать, импортировать и внедрять приложения во многих рабочих пространствах, экземплярах APEX и базах данных. ПКМ на названии приложения вызывает контекстное меню, при помощи которого можно переносить приложение с его вспомогательными объектами из одного рабочего пространства в другое. Эта возможность особенно полезна при внедрении приложений из разработки в тестирование или производство.
Вы можете копировать SQL-код из Ваших регионов, списков значений и проверок, вставлять их в SQL Worksheet в OSD и выполнять. OSD даст Вам ввести значения для связываемых переменных и запустить EXPLAIN PLAN или AUTOTRACE для запроса, чтобы обнаружить проблемы с производительностью и настроить SQL.
Для примеров в этой статье требуются Oracle APEX 3.0.1 и выше и OSD 1.2.1 и выше. (Обратите внимание, что Вы не сможете выполнить примеры, используя Oracle APEX на apex.oracle.com.) Вам также потребуется рабочее пространство Oracle APEX, связанное со схемой-примером HR, доступной в БД по умолчанию.
Просмотр информации Oracle APEX
Создайте подключение в OSD к схеме HR. Для пошаговых инструкций по созданию подключений в OSD читайте статью "Making Database Connections" в этом выпуске Oracle Magazine.**
Когда соединение установится, Вы сможете увидеть пункт Application Express под подключением HR в списке подключений (Connections), как показано на рисунке (под подключением XE Dpeake):
![]() |
Пункт Application Express в Oracle SQL Developer |
Теперь Вы можете просмотреть приложения Oracle APEX пользователя HR, используя закладки с подробной информацией:
![]() |
Закладки с подробной информацией о приложении |
Удалённая отладка
Вы можете использовать OSD для удалённой отладки PL/SQL-кода. Эта возможность особенно полезна в случае, когда приложение не прекращает выполнение, но и не даёт результатов, которые Вы ожидали. Чтобы потренироваться, выполните следующие шаги для отладки процедуры в упакованном приложении Oracle APEX "Asset Manager":
Шаг 1: Получение и установка упакованного приложения. Скачайте, импортируйте и разверните приложение в Oracle APEX.
- Скачайте и сохраните asset_manager_1.0.zip с сайта http://www.oracle.com/technetwork/developer-tools/apex/application-express/packaged-apps-090453.html#ASSETS .
- Разархивируйте файл.
- В OSD подключитесь к схеме HR.
- ПКМ по пункту Application Express под HR в списке подключений, выберите Import Application (Импортировать приложение).
- Найдите и откройте разархивированную папку asset_manager_1.0, выберите файл asset_manager_installer_1.0.sql.
- Нажмите Next (Далее).
- Установите флажок Run Install Script (Запустить установочный скрипт) и нажмите Next.
Импорт и внедрение приложения - Нажмите Finish (Завершить).
- Нажмите OK в окне, сообщающем об успешной установке.
Шаг 2: Настройка OSD для удалённой отладки. Подготовьте OSD для отладки процедуры EBA_ASSET.update_status, выполняемой в приложении, удалённо.
- В OSD подключитесь к базе данных как пользователь с привилегиями DBA.***
- Введите следующий код. Если необходимо, замените PUBLIC на имя пользователя, от имени которого запускается Oracle APEX в mod_plsql.
grant DEBUG CONNECT SESSION to HR; grant DEBUG on HR.EBA_ASSET to PUBLIC;
- Нажмите кнопку Run Script (или нажмите F5).
- Подключитесь как HR.
- В Подключениях откройте пункт Packages (Пакеты) и нажмите EBA_ASSET.
- ПКМ по телу пакета EBA_ASSET и выберите Edit (Править).
- ПКМ по левому полю в редакторе кода, выберите Toggle Line Numbers (Отображать номера строк).
- Перейдите вниз, к строке 113, ПКМ по левому полю в редакторе кода, выберите Toggle Breakpoint (Установить точку остановки).
- ПКМ по коду, выберите Compile for Debug (Компилировать для отладки). Заметьте, что выполнение пакета в режиме отладки сильно помешает производительности. Когда тестирование закончится, Вам стоит перекомпилировать пакет без отладочной информации.
- ПКМ по подключению HR в Подключениях, выберите Remote Debug (Удалённая отладка).
Oracle SQL Developer настроен для удалённой отладки - Нажмите OK.
Шаг 3: Настройка Oracle APEX для отладки. Подготовьте Oracle APEX к отладке процедуры EBA_ASSET .update_status:
- Войдите в Oracle APEX как разработчик соответствующего рабочего пространства - того, в которое Вы установили приложение "Asset Manager".
- Нажмите Application Builder.
- Нажмите Asset Manager 1.0.
- Откройте страницу 11 - Inventory Details.
- В Процессах (Processes) нажмите Update Asset Status.
- В поле Source замените код на следующий:
- Нажмите Apply Changes (Применить изменения).
IF :DEBUG = 'YES' THEN dbms_debug_jdwp.connect_tcp('localhost',4000); END IF; eba_asset.update_status(:P11_ASSET_ID); IF :DEBUG = 'YES' THEN dbms_debug_jdwp.disconnect; END IF;Этот код будет срабатывать только тогда, когда страница запущена в режиме отладки. Второй блок IF отключает отладочную сессию.
Шаг 4: Запуск приложения. Запустите приложение "Asset Manager" в Oracle APEX, вначале в обычном режиме, а затем - в режиме отладки.
- В Oracle APEX вернитесь назад, к странице 1 и нажмите Run (Запустить).
- Войдите в приложение как HR.
- Выберите Assets.
- Нажмите иконку редактирования для любой записи.
- Нажмите иконку редактирования для записи остатков. Поменяйте значение поля Status (статус).
- Нажмите Apply Changes. Приложение нормально обработает изменения, потому оно запущено не в режиме отладки.
- Нажмите иконку редактирования для той же записи остатков.
- Нажмите Debug (Отладка) на панели инструментов разработчика.
- Поменяйте статус и нажмите Apply Changes.
- Теперь OSD должен перехватить фокус ввода. (Если этого не произошло, то приложение будет показывать частично завершённый процесс загрузки страницы, и Вам нужно будет открыть окно OSD самостоятельно.)
- Используйте инструменты OSD, чтобы возобновить выполнение, выполнять отладку пошагово с обходом и со входом в процедуру. Во время отладки процедуры Вы можете видеть изменения значений в переменных и в данных.
![]() |
Панель инструментов разработчика в Oracle APEX |
Когда процедура закончит выполнение, удалённый отладчик отсоединится.
Вы можете использовать удалённую отладку, чтобы пошагово пройти сквозь сложную PL/SQL обработку, которая не выполняет предназначенное. Наблюдение за значениями переменных и данных во время отладки программы помогает определить ошибку в логике.
Заключение
Вы можете использовать Oracle SQL Developer, чтобы выполнять следующие задачи, когда Вы разрабатываете приложения Oracle Application Express:
- Быстрое перемещение между компонентами Ваших приложений.
- Экспорт, импорт и внедрение приложений.
- Настройка SQL.
- Удалённая отладка PL/SQL.
Сочетание Oracle SQL Developer и Oracle Application Express может дать Вам значительный рост производительности в разработке Web-приложений.
Примечания переводчика
* Дэвид не досказывает либо лукавит, говоря "глядеть" (to view) вместо "работать". Чтобы глядеть, хватит и двух закладок в браузере. Естественно, что все необходимые переменные сессии APEX — рабочее пространство, номер приложения, номер страницы — будут устанавливаться в зависимости от последнего открытого LOV. Кроме того, для одновременной работы с двумя приложениями в одном браузере можно использовать дублирование DNS-имён хоста с APEX. Подробней можно почитать здесь: Martin Giffy D'Souza on Oracle APEX - APEX: How to Develop in 2 Browser Tabs.
** Или просто нажмите F1 и читайте раздел справки SQL Developer Concepts and Usage->Database Connections.
*** Имеется в виду пользователь с правами, достаточными для выдачи привилегий DEBUG CONNECT SESSION и DEBUG HR.EBA_ASSET.
хорошая статья
ОтветитьУдалитьне нашел где в OSD можно изменять sql у select list