Oracle application express как запустить

Обновлено: 06.07.2024

Недавно я с удивлением обнаружил, что, оказывается, толковых туториалов по Oracle Application Express (он же APEX, он же апекс, но не путать с языком apex, который используется в Salesforce) в природе не существует.

Это не самая распространенная технология, конечно, но, тем не менее, довольно востребованная. Есть десятки блогов об апексе (англоязычные, в основном), пара тысяч вопросов на Stackoveflow, специальный раздел по апексу на официальных форумах оракла, сам апекс существует уже 15 лет и все время развивается. Я был уверен, что и хороших туториалов полно. Но нет!

Мне тут же пришла в голову гениальная мысль восполнить этот пробел.

Оглавление

Почему существующие туториалы — плохие

Я немного поясню, почему я считаю существующие туториалы плохими. Апекс — это не язык программирования, это такой очень высокоуровневый инструмент разработки, ближайшим идейным аналогом которого я бы назвал MS Access. Соответственно, большая часть разработки на апексе состоит из работы с веб-интерфесом этой среды: нажимания на кнопки, перехода по ссылкам, заполнение полей с названиями компоментов, выбора значений из списков и так далее. Что делает типовой туториал? Он показывает скриншоты этих самых экранов с подписями "нажмите туда-то". При этом сама IDE достаточно удобная и понятная, почти все элементы снабжены справочными пояснениями, есть встроенная помощь. В итоге, если нужно объяснить пользователю, как создать приложение, в туториале будет большой скриншот, объясняющий, как нажать на кнопку "Create a new app". Вот, посмотрите сами на официальный оракловый туториал:

Скриншот примера туториала по апексу

Они бы еще объяснили со скриншотами, что "клик" — это однократное нажатие на левую кнопку манипулятора типа "мышь".
Конечно, полезная информация в таких туториалах тоже есть, но ее там крохи. Процентов на 80 туториалы состоят из таких вот скриншотов, причем по своему опыту я могу сказать, что человек, не читавший никаких туториалов вообще, самостоятельно найдет, как создать приложение, добавить страницу, поместить на нее отчет и так далее. А потом ему нужно будет организовать более-менее нетривиальное взаимодействие нескольких элементов апекса, и оказывается, что этот вопрос туториалом почти не покрывается. Приведу аналогию: вы только-только учитесь программировать, изучили переменные, массивы, циклы, условия, и получили задание, в рамках выполнения которого вам нужно отсортировать массив. Как-то отсорировать массив — достаточно просто, но как только задание усложнится до "отсортировать большой массив быстро", окажется, что имеющихся у вас знаний недостаточно. Погуглив, покопав Stackoverflow и форумы, вы найдете алгоритм быстрой сортировки. Конечно, кто-то и сам переизобретет этот алгоритм рано или поздно, но более эффективным путем было бы сразу прочитать книжку с разбором типовых алгоритмов. И вот как раз такого набора "типовых алгоритмов" для апекса обычно нигде нет, а на помощь приходят те же самые метод научного тыка, поисковики, форумы и Stackoverflow (и, я надеюсь, этот туториал).

Вводная информация

Предполагается, что читатель знаком с Oracle Database версии хотя бы с 11-й, SQL, PL/SQL и особенно с тем, что такое EXECUTE IMMEDIATE и как оно работает.

Я начну с обзора наиболее часто используемых разделов IDE. Я тоже покажу несколько скриншотов. Куда же без них, раз всё здесь сделано из визуальных компонентов. Но их будет не так много, как в плохих туториалах, и в основном они будут в начальных главах, а дальше я буду просто указывать название раздела IDE, в котором находятся необходимые вещи. Сразу обращу ваше внимание, что это просто первое знакомство с IDE. Более подробная информация о том, когда на какую кнопку нажимать и где что смотреть, будет дана дальше, когда я перейду к конкретным темам.

Обзор IDE

Стартовый экран, который вы увидите сразу после входа в IDE:

Главные элементы здесь — это 4 большие кликабельные картинки:

  1. App Builder — это, собственно, то место, где можно создавать приложения и где вы будете проводить до 99% времени.
  2. SQL Workshop — заменитель обычной IDE для работы с СУБД Oracle. Там вы можете посмотреть объекты БД (таблицы, индексы, пакеты, и т. п.) и выполнять SQL-запросы. Если у вас есть возможность делать все это через "обычные" IDE (вроде Oracle SQL Developer или PL/SQL Developer) — делайте через них. Тем не менее, этот раздел тоже может быть полезен и о нем я тоже расскажу.
  3. Team Development — инструменты для командной разработки. Честно говоря, я ни разу не видел, чтобы хоть кто-то ими пользовался на практике (включая меня). Любопытства ради я туда тоже заглядывал и совсем бесполезным этот раздел я бы не назвал, хотя и очень хочется.
  4. App Gallery — раздел с демо-приложениями. К тому моменту, когда он появился, я уже неплохо знал апекс и почти не заглядывал туда, но начинающим, думаю, это будет полезно. Там много разных простеньких приложений, на их примере можно изучать, как использовать те или иные возможности.

В меню в самом верху страницы продублированы эти же 4 пункта.

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

Рассмотрим App Builder и SQL Workshop подробнее.

App builder

Эта страница выглядит примерно вот так:


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

  1. "Create" — создать новое приложение. Эта же функция продублирована чуть ниже (синяя кнопка "Create" над отчетом со списком приложений). Кнопка запускает мастер создания приложений.
  2. "Import" — импортировать приложение. Апекс позволяет переносить приложения с одного сервера на другой в виде текстовых файлов (которые, по сути, являются длииииными PL/SQL скриптами с вызовами функций создания всех элементов приложения).
  3. "Dashboard" — малополезное сборище статистики разработки приложений. Кто, когда, где, сколько изменений сделал. Думаю, даже вашему начальнику будет неинтересно туда смотреть.
  4. "Workspace Utilities" — набор дополнительных инструментов для управления приложением. Честно говоря, туда я тоже почти не заглядываю.

Так же хочу обратить ваше внимание на вот такую маленькую кнопочку в панели отчета:

Переключатель вида отчета

Она переключает вид отчета с такого, как на скриншоте выше (с "картинками" приложений) на отчет в виде таблицы:

App builder в Oracle APEX

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

После того, как вы создадите приложение или откроете существующее, вы увидите следующую страницу (очень похожую на предыдущую по структуре):

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

  1. "Run Application". Эта кнопка запускает ваше приложение. Оно откроется в отдельном окне. По умолчанию — именно в окне, а не во вкладке браузера, но это поведение настраивается (об этом позже).
  2. "Supporting Objects". Этот раздел служит для решения вопросов, связанных с установкой, обновлением и удалением приложений. Обычно им почти не пользуются.
  3. "Shared Components" — я бы сказал, это первый или второй по важности раздел IDE (еще один — редактор страниц). Если вы будете много разрабатывать на апексе, то очень скоро заметите, что выучили структуру этого раздела как "Отче наш".
  4. "Utilities" — еще один набор (мало)полезных вспомогательных функций.
  5. "Export / Import". Позволяет экспортировать или импортировать приложения или отдельные части приложения.

И две дополнительные кнопки, которые обведены оранжевой рамкой на скриншоте:

  1. Кнопка "Edit application properties". Нажав на нее, вы попадете на страницу настроек свойств приложения. Возможно, вы не будете заходить в этот раздел часто, но он очень важен, потому что там хранятся настройки приложения, от которых много чего зависит. Далее, если я буду упоминать где-то "свойства приложения" — ищите их в этом разделе.
  2. В кои-то веки полезная функция в правой панели: "Delete this Application". В то время как многие функции в апексе продублированы в разных местах, эта функция есть только здесь, и с непривычки первый раз ее найти сложно.
Shared Components

Shared Components — это наше всё. Этот раздел является промежуточным пунктом на пути к конкретным компонентам приложений. Покажу здесь общий вид, просто чтобы вы представляли, где что находится:

Shared Components

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

  1. Application Logic — средства управления логикой приложения.
  2. Security — вопросы безопасности и управления доступом к приложению целиком и к отдельным компонентам в зависимости от ролей пользователей.
  3. Other Components — это "все остальные компоненты". По-хорошему, этому разделу следовало бы быть последним, но он почему-то здесь. А подпункт "List of Values" я бы вообще в Application Logic перенес.
  4. Navigation — компоненты приложения для обеспечения навигации.
  5. User Interface — настройка внешнего вида приложения, стилей и т. п.
  6. Files — раздел для файлов (например, css или js). Незаменим, если у вас нет доступа к ОС, и все равно удобен, даже если доступ есть.
  7. Data Sources — работа с источниками данных (для загрузки и выгрузки).
  8. Reports — отчеты, очевидно.
  9. Globalization — раздел для перевода приложений на другие языки.

Перевод приложений в апексе сделан просто ужасно (честно, я пытался придумать, как сделать его хуже — и не смог), и нет никаких свидетельств того, что в будущем станет лучше.
Ужасно с точки зрения архитектуры и удобства работы над переводом. Могу только сказать разработчикам: "Спасибо, что хотя бы без багов" (но тут как посмотреть: переводы устроены так, что некоторые особенности их работы мало чем отличаются от багов).
Приходится с этим жить.

Page Designer

Page Designer — редактор страниц. Это, наверное, главное место в IDE. Здесь вы будете создавать то, с чем напрямую взаимодействует пользователь. Здесь просто куча функций, почти как в кабине самолета. На скриншоте разноцветными рамками выделены основные составляющие редактора:

Page Designer

Панель кнопок вверху (в красной рамке):

  • Поле для ввода номера страницы, стрелки вверх и вниз и кнопка "Go": навигация по страницам приложения. Каждая страница имеет номер, тут вы можете либо ввести номер нужной страницы, либо стрелками перейти к следующей/предыдущей, либо нажать на самую левую кнопку и в появившемся модальном окне выбрать страницу из списка.
  • Кнопка с замком: позволяет заблокировать страницу от изменений другими разработчиками.
  • Кнопки Undo/Redo
  • Две кнопки с доступом к вспомогательным функциям.
  • Кнопка-ссылка на Shared Components. Полезная, потому что туда-сюда ходить приходится постоянно. (Я сам, правда, предпочитаю просто держать Shared Components в отдельной вкладке — так еще быстрее).
  • Кнопка "Save" — сохраняет изменения на странице.
  • Кнопка "Run" — "запускает" страницу, то есть вы ее видите так, как ее потом увидит пользователь.

Слева (в оранжевой рамке) — панель с компонентами приложения. В этой панели есть 4 закладки:

  • "Rendering" — показывает, из каких составных частей состоит страница, какие процессы выполняются при рендеринге;
  • "Dynamic Actions" — действия, выполняемые на клиенте (например, обработчики событий javascript);
  • "Processing" — серверные процессы, связанные со страницей;
  • "Page Shared Components" — для прямого перехода к используемым на странице общим компонентам (те самые Shared Components).

По центру (в зеленой рамке) — панель, содержащая много разнородной информации. В верхней части панели есть 5 закладок, на которых можно найти:

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

Справа (в синей рамке) — панель свойств. Тут все просто — она показывает свойства выбранного в данный момент компонента.

SQL Workshop

Как я уже говорил, SQL Workshop — это заменитель обычной IDE (если у вас по каким-то причинам нет возможности ее использовать).

SQL Workshop

Он состоит из 5 разделов:

  1. Object Browser — браузер объектов БД (таблиц, пакетов, функций и процедур, индексов, сиквенсов и прочего);
  2. SQL Commands — раздел, где можно выполнить любой SQL запрос или PL/SQL код;
  3. SQL Scripts — здесь можно загрузить текстовый файл со скриптом и выполнить его;
  4. Utilities — разные дополнительные возможности, связанные с БД: например, есть графический построитель запросов (но не только);
  5. RESTful Services — создание REST сервисов. Апекс тоже имеет REST (причем давно, еще в версии 4.2 они уже были)!
Object Browser

Object Browser

Здесь есть все, что нужно для работы с объектами БД: создание, изменение, удаление, просмотр свойств объектов, ввод данных в таблицы — для всего этого в этом разделе есть графический интерфейс. Вверху слева в выпадающем списке можно выбрать тип объектов (на скриншоте показаны таблицы), вверху справа можно выбрать схему, объекты которой вы можете посмотреть. В списке доступных схем вы не увидите все схемы сразу — это нормально. Как сделать схемы видимыми в апексе, я расскажу, когда дойду до администрирования.
Также я не вижу большого смысла описывать этот раздел подробнее: если вы знаете, что значит фраза "добавить столбец в таблицу", вы без труда догадаетесь, когда вам нужно будет нажимать на кнопку "Add Column" и что вас может ждать дальше.

SQL Commands

В этом разделе можно выполнять SQL запросы и PL/SQL код.

SQL Commands

По возможностям этот раздел почти не уступает полноценным средам разработки. Не хватает разве что автодополнения кода и подсветки синтаксиса (а в Object Browser подсветка синтаксиса есть, кстати). Имеющиеся возможности:

  • выполнение SQL, в том числе с параметрами (для ввода значений параметров появится отдельное окно);
  • выполнение PL/SQL с возможностью вывода текста через dbms_output (вывод появится в окне ниже);
  • выполнение только выделенной части кода (выделить текст мышкой, затем "Run");
  • просмотр плана запроса;
  • сохранение запросов.

Это, как вы понимаете, далеко не всё, что есть в IDE APEX, но на данном этапе не имеет смысла углубляться дальше. Отдельные элементы интерфейса апекса будут разобраны более подробно в темах, которые имеют к ним непосредственное отношение.

P. S. Я пока не могу сказать, что четко продумал структуру этого туториала, возможно, в будущем я добавлю еще скриншоты и описания в эту статью или опишу дополнительные возможности в других статьях. Осталось придумать, как оповещать заинтересованных о значительных правках старых статей.

В посте рассматривается краткий обзор среды разработки Oracle APEX и пошаговая инструкция ее установки на Oracle Database 18c Express Edition.

Краткий обзор среды разработки APEX.

Установка Oracle APEX 20.1.

Предполагается, что есть успешно установленная Oracle Database 18c Express Edition. При необходимости, можно установить Oracle Database 18c Express Edition используя следующие материалы: Установка Oracle Database 18c Express Edition на Linux и Установка Oracle Database 18c Express Edition на Windows. В посте подключение к PDB описываются различные способы подключения и работы в PDB.

Шаг 1. Установка APEX на Oracle Database 18c Express Edition.

Oracle APEX распространяется бесплатно и установочный файл можно скачать с официального сайта Oracle:


После ознакомления и принятия условий лицензирования необходимо поставить галочку в разделе I reviewed and accept the Oracle License Agreement. Запускается скачивание zip архива (apex_20.1.zip). Объем архива 160 Мб.


После завершения скачивания, архив apex_20.1.zip нужно скопировать в директорию /home/oracle/ операционной системы Oracle Linux, работающей в виртуальной машине. Выполняется разархивирование файла и проверка содержимого архива:

После разархивирования создалась папка apex с множеством sql скриптов для создания и настройки APEX. Необходимо из директории со скриптами (/home/oracle/apex/) подключиться к PDB XEPDB1 и начать установку APEX:

Подключение к XEPDB1 прошло успешно. Запускается скрипт apexins.sql для установки APEX со следующим синтаксисом:

@apexins.sql tablespace_apex tablespace_files tablespace_temp images

Скрипт apexins.sql запускается со следующими значениями параметров:

Выше приводится последняя часть лога установки APEX, так как система генерирует очень много строк лога. Лог показывает, что установка прошла успешно и заняла 18 мин 14 секунд времени.

Шаг 2. Настройки и подключение к APEX.

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

Для создания администратора и назначения ему пароля запускается скрипт apxchpwd.sql в PDB. Данный скрипт также может быть использован для сброса пароля существующему администратору APEX.

Иначе система выдаст следующую ошибку:

ORA-20001: Password validation failed.
ORA-06512: at line 30
ORA-06512: at "APEX_200100.WWV_FLOW_FND_USER_INT", line 3744
ORA-06512: at line 20

Запускается скрипт для создания администратора с именем ADMIN и назначения его email и пароля:

Пользователь успешно создан.

Для настройки встроенного PL/SQL-шлюза необходимо запустить скрипт apex_epg_config.sql со следующим синтаксисом:

директория-на-уровень-выше-директории-распакованного-архива – если после разархивирования архивного файла apex_20.1.zip папка apex со скрипты установки и настройки находятся в директории /home/oracle, то надо при запуске команды указать /home/oracle.

Далее назначается порт для подключения к APEX. Проверяется текущее значение порта. По умолчание значение порта равно 0.

В примере назначается порт 8080 для доступа и проверяется новое значение:

Новое значение порта для доступа к APEX успешно задано.

На последнем шаге разблокируется пользователь ANONYMOUS в контейнерной базе данных (CDB). Для этого выполняется выход из SQL*Plus PDB, подключение к CDB и разблокировка пользователя:


После завершения установки автоматически создается рабочее пространство (Workspace) для выполнения административных задач в APEX. Название workspace – INTERNAL. Выполняется подключение к административному workspace под пользователем ADMIN и его паролем (данный пользователь и его пароль были созданы при запуске скрипта apxchpwd.sql (см. выше)).


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


На этапе Identify Schema надо будет указать название схемы (пользователя базы данных), к которой будет привязана новое рабочее пространство. Если в поле Re-use existing schema выбран No, то в поле Schema Name необходимо указать название нового пользователя/схемы, в Schema Password задать ему пароль, а в поле Space Quota (MB) назначить ему квоту на использование пространства в табличном пространстве. В примере для поля Re-use existing schema выбирается значение Yes и в Schema Name указывается тестовая и учебная схема/пользователь hr. Это даст возможность использовать связанные таблицы, представления, триггеры, данные и другие объекта схемы hr во время создания приложений в APEX:







Это означает, что в APEX успешно создано новое рабочее пространство с именем Dushanbe. Нажатие кнопки Done позволит пользователю ADMIN получить доступ к своему рабочему пространству и начать работу:


Первоначально выполняется выход пользователя ADMIN из административного рабочего пространства (workspace) INTERNAL . Для этого в правом верхнем углу нажимается на имя пользователя и нажимается на Sign Out.



Нажимается на Return to Sign in Page и на новой странице указываются данные для подключения к новому рабочему пространству (workspace) Dushanbe:


При первом входе администратору нового рабочего пространства (workspace) необходимо самостоятельно сменить пароль:


После успешной смены пароля администратор workspace Dushanbe получает доступ к среде:


Рабочее пространство Dushanbe готово для начала разработки веб-приложений.


Следуйте за нами на нашей фан-странице, чтобы получать уведомления каждый раз, когда появляются новые статьи. Facebook


1- Введение

В данной статье я покажу вам как работать с Oracle Application Express (Oracle APEX) 5.x:

Вы можете посмотреть руководство по установке и конфигурации Oracle APEX по ссылке:

2- Создать Workspace

Для начала, вм нужно войти в систему управления Oracle APEX чтобы объявить Workspace. Workspace будет прикреплен с SCHEME в database. Workspace содержит Приложения (включая систему форм, отчетов, ..), управляет user тех кто участвует в программировании, или user которые являются пользователями.





Вы можете выбрать SCHEMA имеющийся в Database, здесь я создаю SCHEMA с названием DEV, пароль dev123.


В предыдущем шаге вы создали SCHEMA с названием DEVэто означает создан 1 user database и называетеся DEV.

В этом шаге вам нужно объявить User управляющего Workspace, это не user database, это user управляющий этот APEX Workspace, и имеет право создавать приложения, создавать другие APEX user выполняющие роль программиста, или пользователя приложения, .




Ваш Workspace создан. Вы можете посмотреть список имеющихся Workspace и менять если хотите.


Первым делом скачиваем необходимые архивы с официального сайта oracle:

Предполагается, что на сервере уже установлен Oracle Database, JDK и Weblogic. Во время написания этой статьи применялись следующие версии систем: Oracle Database 12c, Jdk1.8 и Weblogic 12c, в качестве сервера используется Windows Server 2008.

Создадим директорию «C:\oracle\apex» и «C:\oracle\apex\ords».

Директория «C:\oracle\apex» в итоге будет выглядеть так:


Содержимое каталога «C:\oracle\apex\apex»:


Содержимое каталога «C:\oracle\apex\ords»:


Под правами администратора открываем командную строку.

Выполняем команду cd "C:\oracle\apex\apex"


Для подключения к oracle инициализируем переменную ORACLE_SID (в нашем примере SID=rtdm):

Запустим sqlplus командой:

Появится следующее окно:


Далее необходимо подключиться к пользователю с правами sysdba

conn sys/пароль_к_схеме@rtdm as sysdba

Теперь разберёмся с командой для установки apex объектов:

@apexins tablespace_apex tablespace_files tablespace_temp images

tablespace_apex – это табличное пространство которое будут использовать объекты БД apex

tablespace_files – табличное пространство для файлов apex

tablespace_temp – временное табличное пространство

images – имя виртуального каталога с картинками

В моем примере команда выглядит так:

@apexins.sql sysaux sysaux temp /i/

После выполнения команды выше, начнется создание apex объектов в oracle database, минут через 20 в консоли появится текст «PL/SQL procedure successfully completed.» это будет означать, что все объекты успешно созданы.

Теперь мы можем установить пароль администратора APEX, для этого подключаемся к sqlplus с правами sysdba и выполняем команду SQL>@apxchpwd.sql, далее нам предложат ввести логин администратора и пароль, см. рисунок ниже.


Далее выполняем команды:

SQL>ALTER USER APEX_PUBLIC_USER ACCOUNT UNLOCK;


Проверяем, чтобы у пользователей 'APEX_REST_PUBLIC_USER', 'APEX_PUBLIC_USER', 'APEX_LISTENER', 'APEX_050000', 'FLOWS_FILES' ACCOUNT_STATUS был OPEN:

    КонфигурированиеOracle REST Data Services 3 (ORDS)

В каталоге «C:\oracle\apex\ords» создадим папку с названием «config».

Запустим консоль под правами администратора и выполним команды

java -jar ords.war configdir "C:\oracle\apex\ords\config"


Далее выполняем инсталляцию командой java -jar ords.war install advanced


Зададим необходимые параметры и пароли, по завершению установки нам предложат запустить apex в standalone режиме, откажемся от этого, введем: 0 Enter.

Читайте также: