Oracle DB, Oracle APEX, Linux etc.

понедельник, 15 ноября 2010 г.

Oracle APEX + Oracle SQL Developer = Сила двух

Предлагаю вниманию читателей перевод одной статьи. Она понравилась мне объяснением возможностей удалённой отладки, и я решил перевести её целиком. Надеюсь, она пригодится...

Сила двух
Дэвид Пик
Перевод: Александр Поливаный 

Использование 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.

  1. Скачайте и сохраните asset_manager_1.0.zip с сайта http://www.oracle.com/technetwork/developer-tools/apex/application-express/packaged-apps-090453.html#ASSETS .
  2. Разархивируйте файл.
  3. В OSD подключитесь к схеме HR.
  4. ПКМ по пункту Application Express под HR в списке подключений, выберите Import Application (Импортировать приложение).
  5. Найдите и откройте разархивированную папку asset_manager_1.0, выберите файл asset_manager_installer_1.0.sql.
  6. Нажмите Next (Далее).
  7. Установите флажок Run Install Script (Запустить установочный скрипт) и нажмите Next.

    Импорт и внедрение приложения
  8. Нажмите Finish (Завершить).
  9. Нажмите OK в окне, сообщающем об успешной установке.


Шаг 2: Настройка OSD для удалённой отладки. Подготовьте OSD для отладки процедуры EBA_ASSET.update_status, выполняемой в приложении, удалённо.

  1. В OSD подключитесь к базе данных как пользователь с привилегиями DBA.***
  2. Введите следующий код. Если необходимо, замените PUBLIC на имя пользователя, от имени которого запускается Oracle APEX в mod_plsql.
    grant DEBUG CONNECT SESSION to HR; 
    grant DEBUG on HR.EBA_ASSET to PUBLIC;
  3. Нажмите кнопку Run Script (или нажмите F5).
  4. Подключитесь как HR.
  5. В Подключениях откройте пункт Packages (Пакеты) и нажмите EBA_ASSET.
  6. ПКМ по телу пакета EBA_ASSET и выберите Edit (Править).
  7. ПКМ по левому полю в редакторе кода, выберите Toggle Line Numbers (Отображать номера строк).
  8. Перейдите вниз, к строке 113, ПКМ по левому полю в редакторе кода, выберите Toggle Breakpoint (Установить точку остановки).
  9. ПКМ по коду, выберите Compile for Debug (Компилировать для отладки). Заметьте, что выполнение пакета в режиме отладки сильно помешает производительности. Когда тестирование закончится, Вам стоит перекомпилировать пакет без отладочной информации.
  10. ПКМ по подключению HR в Подключениях, выберите Remote Debug (Удалённая отладка).

    Oracle SQL Developer настроен для удалённой отладки
  11. Нажмите OK.


Шаг 3: Настройка Oracle APEX для отладки. Подготовьте Oracle APEX к отладке процедуры EBA_ASSET .update_status:

  1. Войдите в Oracle APEX как разработчик соответствующего рабочего пространства - того, в которое Вы установили приложение "Asset Manager".
  2. Нажмите Application Builder.
  3. Нажмите Asset Manager 1.0.
  4. Откройте страницу 11 - Inventory Details.
  5. В Процессах (Processes) нажмите Update Asset Status.
  6. В поле Source замените код на следующий:
  7. 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 отключает отладочную сессию.
  8. Нажмите Apply Changes (Применить изменения).

Шаг 4: Запуск приложения. Запустите приложение "Asset Manager" в Oracle APEX, вначале в обычном режиме, а затем - в режиме отладки.

  1. В Oracle APEX вернитесь назад, к странице 1 и нажмите Run (Запустить).
  2. Войдите в приложение как HR.
  3. Выберите Assets.
  4. Нажмите иконку редактирования для любой записи.
  5. Нажмите иконку редактирования для записи остатков. Поменяйте значение поля Status (статус).
  6. Нажмите Apply Changes. Приложение нормально обработает изменения, потому оно запущено не в режиме отладки.
  7. Нажмите иконку редактирования для той же записи остатков.
  8. Нажмите Debug (Отладка) на панели инструментов разработчика.
  9. Панель инструментов разработчика в Oracle APEX
  10. Поменяйте статус и нажмите Apply Changes.
  11. Теперь OSD должен перехватить фокус ввода. (Если этого не произошло, то приложение будет показывать частично завершённый процесс загрузки страницы, и Вам нужно будет открыть окно OSD самостоятельно.)
  12. Используйте инструменты OSD, чтобы возобновить выполнение, выполнять отладку пошагово с обходом и со входом в процедуру. Во время отладки процедуры Вы можете видеть изменения значений в переменных и в данных.

Когда процедура закончит выполнение, удалённый отладчик отсоединится.

Вы можете использовать удалённую отладку, чтобы пошагово пройти сквозь сложную 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.

1 комментарий:

  1. хорошая статья
    не нашел где в OSD можно изменять sql у select list

    ОтветитьУдалить