Oracle apex инструкция на русском

Время на прочтение
11 мин

Количество просмотров 52K

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

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

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

Оглавление

Почему существующие туториалы — плохие
Вводная информация
Обзор IDE
    App builder
        Страница приложения
        Application properties
        Shared Components
        Page Designer
    SQL Workshop
        Object Browser
        SQL Commands

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

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

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

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

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

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

IDE апекса значительно изменилась при переходе с версии 4.2 на 5.0 (релиз был как раз 4 года назад, в марте 2015-го). С тех пор IDE меняется мало, но иногда добавляются новые возможности. Я буду делать скриншоты на apex.oracle.com, где сейчас установлена версия 19.1, но если у вас где-то используется более ранняя версия (5.х, 18.х), вы без труда найдете нужный элемент, если только он не появился в более поздней версии, чем ваша.

Я начну с обзора наиболее часто используемых разделов IDE. Я тоже покажу несколько скриншотов. Куда же без них, раз всё здесь сделано из визуальных компонентов. Но их будет не так много, как в плохих туториалах, и в основном они будут в начальных главах, а дальше я буду просто указывать название раздела 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». В то время как многие функции в апексе продублированы в разных местах, эта функция есть только здесь, и с непривычки первый раз ее найти сложно.

Application properties

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

Application properties

Настройки сгруппированы в 4 группы (см. верхнюю рамку), а в каждой группе есть еще по нескольку подгрупп (см. нижнюю рамку), у каждой группы есть свое название. Похожим образом настройки организованы в очень многих местах в апексе. В дальнейшем я буду просто указывать путь к нужной настройке примерно так: «Application Properties» → «Definition» → «Name» → «Version».

Также, если вы посмотрите на хлебные крошки вверху страницы, вы увидите, что там написано «Edit Application Definition», хотя заходили вы, казалось бы, в «Application Properties». Просто не обращайте внимания.

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, нужно кликнуть по ссылке с названием страницы на странице приложения (извините за тавтологию). На скриншоте разноцветными рамками выделены основные составляющие редактора:

Page Designer

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

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

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

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

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

  • «Layout»: показывает примерное расположение компонентов на странице;
  • «Component view»: по большому счету, это пережиток прошлого (похожим образом выглядел редактор страниц в 4-й версии апекса, в версии 5.0 или 5.1 этот старый «вид» получил статус deprecated, хотя и использовался параллельно с новым, а теперь тут осталась лишь его бледная тень);
  • «Messages»: тут будут сообщения об ошибках (например, сообщение о том, что не заполнено какое-нибудь обязательное поле);
  • «Page Search»: поиск на странице. Ищет искомую строку во всех местах, где вы можете что-то вводить (в коде, в текстах сообщений, в названиях компонентов и т. д.);
  • «Help»: помощь. Довольно толковая, хотя и не всегда. Можно выбрать какое-нибудь свойство компонента в левой панели и посмотреть его описание.

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

Справа (в синей рамке) — панель свойств. Тут все просто — она показывает свойства выбранного в данный момент компонента. Часть свойств компонентов — простые: текст, число, значение из списка. Но у более сложных свойств компонентов есть дополнительные интерфейсные возможности, сильно облегчающие жизнь при работе с ними.
Свойство, представляющее собой большой текст. Например, код на PL/SQL или JavaScript. Выглядит так:

Memo property screenshot

Можно писать код прямо так, в этом поле, а можно щелкнуть по кнопке вверху страва, и тогда откроется модальное окно с редактором кода, где доступны подсветка синтаксиса (для SQL, JavaScript, CSS, HTML), поиск в тексте и другие функции редактора.

Свойство — Shared Component. Если свойство является одним из компонентов приложения (Shared Component), то выбирать конкретный компонент можно из списка, а нажав на кнопку справа от списка

Go to Shared Components button

можно переместиться в раздел Shared Components непосредственно в свойства выбранного компонента (чтобы, например, их изменить).

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

quick pick

Она называется «Quick pick» и используется, когда вариантов очень много. «Quick pick» дает чуть более быстрый доступ к небольшому подмножеству вариантов — как правило, там находятся наиболее часто используемые варианты. «Часто используемые варианты» здесь — не вами используемые, а «вообще». Это жестко заданный список и со временем не меняется.

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, пошаговая инструкция установки и настройки APEX версии 20.2 и ORDS версии 20.3 на Oracle Database 18c Express Edition.

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

Oracle Application Express (APEX) – это low-code платформа для разработки функциональных, масштабируемых и безопасных web-приложений. На сегодняшний день последней актуальной версией APEX является Oracle APEX 20.2. Данная версия выпущена в октябре 2020 года. Для установки и работы с APEX 20.2 в Oracle Database 18c Express Edition необходимо понимать принцип работы новой опции Oracle Database – Multitenant. Начиная с Oracle Database 12с поддерживается новая архитектура – Multitenant, которая предоставляет возможность использовать множество баз данных для консолидации их в составе единой и главной базы данных. Такое объединение упрощает задачи администрирования баз данных. Единая и главная база данных используется в качестве платформы и называется контейнерная база данных (Container Database – CDB), а база данных из множества работающих в составе контейнерной базы данных называется подключаемой базой данных (Pluggable Database – PDB). Архитектура Multitenat позволяет создать в Oracle Database 18с Express Edition одну CDB базу и до трех PDB баз. По умолчанию в Oracle Database 18с Express Edition APEX отсутствует. В связи с этим, для установки и работы с APEX необходимо подключиться к PDB и выполнять установку и настройку APEX. Ниже пошагово описывается процесс установки и настройки APEX 20.2 и Oracle REST Data Services версии 20.3 (далее ORDS) на Oracle Database 18c Express Edition, работающей на виртуальной машине под управлением операционной системы Oracle Linux. При использовании APEX 20.2 минимальная версия ORDS должна быть 19.1. Нижеописанные шаги также будут работать с Oracle Database 18c Express Edition установленной на операционную систему Windows.

Для информации: Кроме установки и использования платформы Oracle APEX на локальном компьютере, также есть возможность установить и использовать ее для разработки веб-приложений на бесплатном сервисе Always Free Service облака Oracle или же запросить и настроить свое рабочее пространство в бесплатном облачном сервисе apex.oracle.com. В данном посте рассматривается установка и доступ к среде разработки APEX на локальном компьютере.

Установка Oracle APEX 20.2. Предполагается, что есть успешно установленная 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 – https://www.oracle.com/tools/downloads/apex-downloads.html

Для скачивания на портале Oracle необходимо наличие учетной записи с паролем. При ее отсутствии осуществляется регистрация новой учетной записи.

Пройдя по ссылке, выбирается версия Oracle APEX 20.2 – All languages.

После ознакомления и принятия условий лицензирования необходимо поставить галочку в разделе I reviewed and accept the Oracle License Agreement.

Нажать на «Download apex_20_2.zip». Запускается скачивание zip архива (apex_20.2.zip). Объем архива 228 Мб.

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

[oracle@dushanbe ~]$ pwd
/home/oracle
[oracle@dushanbe ~]$ ls
apex_20.2.zip  Desktop  Documents  Downloads  Music  Pictures  Public  Templates  Videos
[oracle@dushanbe ~]$ ls -l apex_20.2.zip 
-rw-rw-rw-. 1 oracle oracle 239868057 Jan 14 22:50 apex_20.2.zip
[oracle@dushanbe ~]# unzip apex_20.2.zip 
[oracle@dushanbe ~]$ ls 
apex  apex_20.2.zip  Desktop  Documents  Downloads  Music  Pictures  Public  Templates  Videos
[oracle@dushanbe ~]$ cd apex
[oracle@dushanbe apex]$ pwd
/home/oracle/apex
[oracle@dushanbe apex]$ ls
apexins1.sql         apex_rest_config_cdb.sql    apxdevrm_cdb.sql    apxexit.sql         apxremov_nocdb.sql    apxrtins_nocdb.sql  core          dbcsins.sql
apexins2.sql         apex_rest_config_core.sql   apxdevrm_nocdb.sql  apxpatch_cdb.sql    apxremov.sql          apxrtins.sql        coreins2.sql  devins.sql
apexins3.sql         apex_rest_config_nocdb.sql  apxdevrm.sql        apxpatch_nocdb.sql  apxrtins1.sql         apxsdoins.sql       coreins3.sql  images
apexins_cdb.sql      apex_rest_config.sql        apxdvins_cdb.sql    apxpatch.sql        apxrtins2.sql         apxsilentins.sql    coreins4.sql  load_trans.sql
apexins_cdb_upg.sql  appins.sql                  apxdvins_nocdb.sql  apxremov1.sql       apxrtins3.sql         apxupgrd.sql        coreins5.sql  utilities
apexins_nocdb.sql    apxappcon.sql               apxdvins.sql        apxremov2.sql       apxrtins_cdb.sql      builder             coreins.sql
apexins.sql          apxchpwd.sql                apxdwngrd.sql       apxremov_cdb.sql    apxrtins_cdb_upg.sql  catapx.sql          dbcsconf.sql
[oracle@dushanbe apex]$

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

[oracle@dushanbe apex]$ sqlplus sys as sysdba
SQL*Plus: Release 18.0.0.0.0 - Production on Sat Aug 8 11:21:28 2020
Version 18.4.0.0.0
Copyright (c) 1982, 2018, Oracle.  All rights reserved.
Enter password: 
Connected to:
Oracle Database 18c Express Edition Release 18.0.0.0.0 - Production
Version 18.4.0.0.0

SQL> show pdbs;
 CON_ID  CON_NAME  OPEN MODE  RESTRICTED
 --------------------------------------
    2    PDB$SEED  READ ONLY      NO  
    3    XEPDB1    READ WRITE     NO
SQL> alter session set container = XEPDB1;
Session altered.
SQL> show pdbs;
 CON_ID  CON_NAME  OPEN MODE  RESTRICTED
 --------------------------------------
    3    XEPDB1    READ WRITE     NO 
 SQL>

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

@apexins.sql tablespace_apex tablespace_files tablespace_temp images

где, tablespace_apex – название табличного пространства для пользователя приложения APEX. tablespace_files – название табличного пространства для пользователя файлов APEX. tablespace_temp – название временного табличного пространства. images – виртуальная директория для изображений APEX. Для обеспечения корректного обновления APEX в будущем необходимо задать значение для этого параметра равное /i/.

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

SQL> @apexins.sql SYSAUX SYSAUX TEMP /i/
...
<Эта часть лога не приведена>
...
#
Actions in Phase 3:
#
    ok 1 - BEGIN                                                        |   0.00
    ok 2 - Computing Pub Syn Dependents                                 |   0.00
    ok 3 - Upgrade Hot Metadata and Switch Schemas                      |   0.00
    ok 4 - Removing Jobs                                                |   0.00
    ok 5 - Creating Public Synonyms                                     |   0.03
    ok 6 - Granting Public Synonyms                                     |   0.10
    ok 7 - Granting to FLOWS_FILES                                      |   0.00
    ok 8 - Creating FLOWS_FILES grants and synonyms                     |   0.02
    ok 9 - Creating Jobs                                                |   0.00
    ok 10 - Creating Dev Jobs                                           |   0.00
    ok 11 - Installing FLOWS_FILES Objects                              |   0.00
    ok 12 - Installing APEX$SESSION Context                             |   0.00
    ok 13 - Recompiling APEX_200200                                     |   0.05
    ok 14 - Installing APEX REST Config                                 |   0.02
    ok 15 - Set Loaded/Upgraded in Registry                             |   1.32
    ok 16 - Removing Unused SYS Objects                                 |   0.00
    ok 17 - Validating Installation                                     |   0.03
ok 3 - 17 actions passed, 0 actions failed                              |   1.57

PL/SQL procedure successfully completed.

Thank you for installing Oracle Application Express 20.2.0.00.20

Oracle Application Express is installed in the APEX_200200 schema.
The structure of the link to the Application Express administration services is as follows:

http://host:port/ords/apex_admin

The structure of the link to the Application Express development interface is as follows:
http://host:port/ords

timing for: Phase 3 (Switch)
Elapsed: 00:01:34.83
timing for: Complete Installation
Elapsed: 00:14:57.61

PL/SQL procedure successfully completed.
1 row selected.
…null1.sql
SYS>

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

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

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

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

После запуска скрипта система предложит ввести пользовательское имя для администратора (login), его email и пароль. По умолчанию система предлагает ADMIN для пользовательского имени администратора (login). Если необходимо оставить пользователя по умолчанию, то поле Enter the administrator’s username [ADMIN] следует оставить пустым и нажать Enter. В поле Enter ADMIN’s email [ADMIN] можно указать свою электронную почту. В поле Enter ADMIN’s password [] надо назначить пароль администратора, который будет удовлетворять следующим требованиям:

  • Пароль должен содержать не менее 6 символов.
  • Пароль должен содержать не менее одного буквенного символа.
  • Пароль должен содержать не менее одного символа пунктуации:
    (!”#$%&()“*+,-/:;?_).
  • Пароль должен содержать не менее одного заглавного буквенного символа.
  • Пароль должен содержать не менее одного строчного буквенного символа.

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

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 и пароля:

SYS> @apxchpwd.sql            
…set_appun.sql
======================================================================================
This script can be used to change the password of an Application Express
instance administrator. If the user does not yet exist, a user record will be created.
======================================================================================
Enter the administrator's username [ADMIN] 
User "ADMIN" does not yet exist and will be created.
Enter ADMIN's email [ADMIN] test@***.tj
Enter ADMIN's password [] 
Created instance administrator ADMIN.
SYS>

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

Также важно настроить учетную запись APEX_PUBLIC_USER для управления Oracle Application Express. Учетная запись APEX_PUBLIC_USER создается со случайным и недоступным паролем во время установки Oracle Application Express. Если же выполняется обновление (upgrade) с предыдущей версии Oracle Application Express, то приведенные ниже две команды не являются необходимыми:

SYS> ALTER USER APEX_PUBLIC_USER ACCOUNT UNLOCK;
SYS> ALTER USER APEX_PUBLIC_USER IDENTIFIED BY new_password;

Для новой установки APEX (а не обновление)  необходимо запустить скрипт apex_rest_config.sql для настройки RESTful сервисов. После запуска потребуется назначить пароль для учетных записей APEX_LISTENER, APEX_REST_PUBLIC_USER. Ниже во время установки и настройки ORDS будет необходимо вводить пароли этих учетных записей.

SYS> @apex_rest_config.sql
Enter a password for the APEX_LISTENER user              [] 
Enter a password for the APEX_REST_PUBLIC_USER user              [] 
…set_appun.sql
…setting session environment
…create APEX_LISTENER and APEX_REST_PUBLIC_USER users
SYS> 

Настройка ORDS

В APEX версии 20.2 уже не поддерживается Web Listener с типом Embedded PL/SQL Gateway и Oracle HTTP Server. В связи с этим, необходимо установить и использовать Oracle REST Data Services (ORDS). Далее описывается процесс установки и базовой настройки APEX с ORDS версии 20.3.

Для начала, необходимо скачать ORDS. Oracle ORDS распространяется бесплатно и установочный файл можно скачать с официального сайта Oracle –  https://www.oracle.com/database/technologies/appdev/rest-data-services-downloads.html

Для скачивания на портале Oracle необходимо наличие учетной записи с
паролем. При ее отсутствии осуществляется регистрация новой учетной записи.

Пройдя по ссылке, скачивается файл Oracle REST Data Services.

После ознакомления и принятия условий лицензирования необходимо поставить галочку в разделе I reviewed and accept the Oracle License Agreement.

Нажать на «Download ords-20.3.0.301.1819.zip». Запускается скачивание zip архива (ords-20.3.0.301.1819.zip). Объем архива 70 Мб.

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

[oracle@dushanbe ~]$ pwd 
/home/oracle
[oracle@dushanbe ~]$ ls 
apex  apex_20.2.zip  Desktop  Documents  Downloads  Music  Pictures  Public  Templates  Videos
[oracle@dushanbe ~]$ mkdir ords
[oracle@dushanbe ~]$ cd ords
[oracle@dushanbe ords]$ pwd
/home/oracle/ords
[oracle@dushanbe ords]$ ls -l
total 70440
-rw-rw-rw-. 1 oracle oracle 72130015 Jan 15 00:00 ords-20.3.0.301.1819.zip
[oracle@dushanbe ords]$ 
[oracle@dushanbe ords]$ unzip ords-20.3.0.301.1819.zip 
[oracle@dushanbe ords]$ ls -l
total 139944
drwxr-xr-x. 3 oracle oracle       21 Oct 27 18:43 docs
drwxrwxrwx. 7 oracle oracle       93 Oct 23 14:42 examples
-rw-rw-rw-. 1 oracle oracle    40033 Oct 23 14:42 index.html
drwxrwxrwx. 2 oracle oracle       43 Oct 23 14:42 installer
-rw-rw-rw-. 1 oracle oracle 72130015 Jan 15 00:00 ords-20.3.0.301.1819.zip
-rw-r--r--. 1 oracle oracle 71128103 Oct 27 18:43 ords.war
drwxrwxrwx. 2 oracle oracle       36 Oct 23 14:42 params
[oracle@dushanbe ords]$

При использовании ORDS для работы с APEX приложениями ORDS должен быть настроен для обслуживания статических файлов APEX. Необходимо скопировать директорию images (apex/images) из домашней директории с установочными файлами APEX в папку файловой системы, где установлены службы Oracle REST Data Services. В данном примере домашняя директория APEX находится в /home/oracle/apex и директория установки ORDS в /home/oracle/ords.

[oracle@dushanbe ords]$ cd /home/oracle/apex/
[oracle@dushanbe apex]$ pwd
/home/oracle/apex
[oracle@dushanbe apex]$ ls
apexins1.sql              apex_rest_config_core.sql   apxdevrm.sql        apxpatch.sql        apxrtins3.sql         builder       dbcsconf.sql
apexins2.sql              apex_rest_config_nocdb.sql  apxdvins_cdb.sql    apxremov1.sql       apxrtins_cdb.sql      catapx.sql    dbcsins.sql
apexins3.sql              apex_rest_config.sql        apxdvins_nocdb.sql  apxremov2.sql       apxrtins_cdb_upg.sql  core          devins.sql
apexins_cdb.sql           appins.sql                  apxdvins.sql        apxremov_cdb.sql    apxrtins_nocdb.sql    coreins2.sql  images
apexins_cdb_upg.sql       apxappcon.sql               apxdwngrd.sql       apxremov_nocdb.sql  apxrtins.sql          coreins3.sql  install2021-01-14_23-10-38.log
apexins_nocdb.sql         apxchpwd.sql                apxexit.sql         apxremov.sql        apxsdoins.sql         coreins4.sql  load_trans.sql
apexins.sql               apxdevrm_cdb.sql            apxpatch_cdb.sql    apxrtins1.sql       apxsilentins.sql      coreins5.sql  utilities
apex_rest_config_cdb.sql  apxdevrm_nocdb.sql          apxpatch_nocdb.sql  apxrtins2.sql       apxupgrd.sql          coreins.sql
[oracle@dushanbe apex]$ cp -r images/ /home/oracle/ords/
[oracle@dushanbe apex]$ cd /home/oracle/ords/
[oracle@dushanbe ords]$ pwd
/home/oracle/ords
[oracle@dushanbe ords]$ 
[oracle@dushanbe ords]$ ls
docs  examples  images  index.html  installer  ords-20.3.0.301.1819.zip  ords.war  params

Проверяется текущая версия JDK.

[oracle@dushanbe ~]$ java -version
java version "15.0.1" 2020-10-20
Java(TM) SE Runtime Environment (build 15.0.1+9-18)
Java HotSpot(TM) 64-Bit Server VM (build 15.0.1+9-18, mixed mode, sharing)
[oracle@dushanbe ~]$

Результат команды показывает, что на этой операционной системе установлена и настроена 15-я  версия JDK. В этом посте можно ознакомиться со способом проверки текущей версии JDK, а также при необходимости установить, обновить, настроить и использовать новую версию по умолчанию (см. раздел «Установка JDK»).

Есть вероятность, что при использовании старой версии JDK (например, 8 версия) запуск установки ORDS выдаст следующую ошибку:

Enter the location to store configuration data: /home/oracle/ords/config 
Exception in thread "main" java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at oracle.dbtools.jarcl.Entrypoint.invoke(Entrypoint.java:66)
    at oracle.dbtools.jarcl.Entrypoint.main(Entrypoint.java:77)
Caused by: java.lang.OutOfMemoryError: Java heap space
    at java.util.Arrays.copyOf(Arrays.java:3236)
    at java.io.ByteArrayOutputStream.grow(ByteArrayOutputStream.java:118)
    at java.io.ByteArrayOutputStream.ensureCapacity(ByteArrayOutputStream.java:93)
    at java.io.ByteArrayOutputStream.write(ByteArrayOutputStream.java:153)
    at java.util.zip.DeflaterOutputStream.deflate(DeflaterOutputStream.java:253)
    at java.util.zip.DeflaterOutputStream.write(DeflaterOutputStream.java:211)
    at java.util.zip.ZipOutputStream.write(ZipOutputStream.java:331)
    at java.nio.channels.Channels$WritableByteChannelImpl.write(Channels.java:458)
    at oracle.dbtools.util.StreamCopy.drain(StreamCopy.java:44)
    at oracle.dbtools.util.StreamCopy.drain(StreamCopy.java:31)
    at oracle.dbtools.zip.ZipBuilder._addEntry(ZipBuilder.java:55)
    at oracle.dbtools.zip.ZipBuilder.addEntry(ZipBuilder.java:63)
    at oracle.dbtools.common.zip.ZipBuilder.addEntry(ZipBuilder.java:24)
    at oracle.dbtools.common.zip.MutatedZip.mutate(MutatedZip.java:68)
    at oracle.dbtools.common.zip.MutatedZip.(MutatedZip.java:34)
    at oracle.dbtools.cmdline.ModifyConfigDir.modified(ModifyConfigDir.java:145)
    at oracle.dbtools.cmdline.ModifyConfigDir.modify(ModifyConfigDir.java:117)
    at oracle.dbtools.cmdline.Commands.configurationContext(Commands.java:568)
    at oracle.dbtools.cmdline.Commands.prepareApplicationContext(Commands.java:447)
    at oracle.dbtools.cmdline.Commands.main(Commands.java:407)
    … 6 more

Есть два варианта установки ORDS:

  1. Автономный (standalone) режим.
  2. На сервере приложений (Oracle WebLogic Server, Apache Tomcat).

Далее описывается установка ORDS в standalone режиме.

Для начала установки и настройки ORDS необходимо запустить следующую команду: java -jar ords.war install advanced

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

– Enter the location to store configuration data: указывается директория настроек ORDS. Можно указать любую директорию. В данном примере указана следующая директория: /home/oracle/ords/config

Enter the administrator username: Необходимо указать логин и пароль учетной записи базы данных с правами sysdba.

[oracle@dushanbe ords]$ java -jar ords.war install advanced
This Oracle REST Data Services instance has not yet been configured.
Please complete the following prompts
Enter the location to store configuration data: /home/oracle/ords/config
Specify the database connection type to use.
Enter number for [1] Basic  [2] TNS  [3] Custom URL [1]:
Enter the name of the database server [localhost]:dushanbe
Enter the database listen port [1521]:
Enter 1 to specify the database service name, or 2 to specify the database SID [1]:
Enter the database service name:XEPDB1
Enter 1 if you want to verify/install Oracle REST Data Services schema or 2 to skip this step [1]:
Enter the database password for ORDS_PUBLIC_USER:
Confirm password:
Requires to login with administrator privileges to verify Oracle REST Data Services schema.

Enter the administrator username:sys
Enter the database password for SYS AS SYSDBA:
Confirm password:
Connecting to database user: SYS AS SYSDBA url: jdbc:oracle:thin:@//dushanbe:1521/XEPDB1

Retrieving information.
Enter the default tablespace for ORDS_METADATA [SYSAUX]:
Enter the temporary tablespace for ORDS_METADATA [TEMP]:
Enter the default tablespace for ORDS_PUBLIC_USER [USERS]:
Enter the temporary tablespace for ORDS_PUBLIC_USER [TEMP]:
Enter 1 if you want to use PL/SQL Gateway or 2 to skip this step.
If using Oracle Application Express or migrating from mod_plsql then you must enter 1 [1]:
Enter the PL/SQL Gateway database user name [APEX_PUBLIC_USER]:  
Enter the database password for APEX_PUBLIC_USER:
Confirm password:
Enter 1 to specify passwords for Application Express RESTful Services database users (APEX_LISTENER, APEX_REST_PUBLIC_USER) or 2 to skip this step [1]:  
Enter the database password for APEX_LISTENER:
Confirm password:
Enter the database password for APEX_REST_PUBLIC_USER:
Confirm password:
Enter a number to select a feature to enable:
   [1] SQL Developer Web  (Enables all features)
   [2] REST Enabled SQL
   [3] Database API
   [4] REST Enabled SQL and Database API
   [5] None
Choose [1]:
2021-01-07T18:32:25.400Z INFO        reloaded pools: []
Installing Oracle REST Data Services version 20.3.0.r3011819
… Log file written to /home/oracle/ords_install_core_2021-01-07_233226_00133.log
… Verified database prerequisites
… Created Oracle REST Data Services proxy user
… Created Oracle REST Data Services schema
… Granted privileges to Oracle REST Data Services
… Created Oracle REST Data Services database objects
… Log file written to /home/oracle/ords_install_datamodel_2021-01-07_233302_00744.log
… Log file written to /home/oracle/ords_install_apex_2021-01-07_233311_00188.log
Completed installation for Oracle REST Data Services version 20.3.0.r3011819. Elapsed time: 00:00:52.120 

Enter 1 if you wish to start in standalone mode or 2 to exit [1]:1
Enter the APEX static resources location:/home/oracle/ords/images
Enter 1 if using HTTP or 2 if using HTTPS [1]:
Enter the HTTP port [8080]:
2021-01-07T18:43:03.267Z INFO        HTTP and HTTP/2 cleartext listening on host: localhost port: 8080
2021-01-07T18:43:03.311Z INFO        Disabling document root because the specified folder does not exist: /home/oracle/ords/params/ords/standalone/doc_root
2021-01-07T18:43:06.167Z INFO        Configuration properties for: |apex||
cache.caching=false
cache.directory=/tmp/apex/cache
cache.duration=days
cache.expiration=7
cache.maxEntries=500
cache.monitorInterval=60
cache.procedureNameList=
cache.type=lru
database.api.enabled=true
db.connectionType=basic
db.hostname=dushanbe
db.port=1539
db.servicename=XEPDB1
debug.debugger=false
debug.printDebugToScreen=false
error.keepErrorMessages=true
error.maxEntries=50
feature.sdw=true
jdbc.DriverType=thin
jdbc.InactivityTimeout=1800
jdbc.InitialLimit=3
jdbc.MaxConnectionReuseCount=1000
jdbc.MaxLimit=10
jdbc.MaxStatementsLimit=10
jdbc.MinLimit=1
jdbc.statementTimeout=900
log.logging=false
log.maxEntries=50
misc.compress=
misc.defaultPage=apex
restEnabledSql.active=true
security.disableDefaultExclusionList=false
security.maxEntries=2000
security.requestValidationFunction=wwv_flow_epg_include_modules.authorize
security.validationFunctionType=plsql
db.password=
db.username=APEX_PUBLIC_USER
resource.templates.enabled=true

На этом завершается установка и настройка APEX с ORDS. Можно подключиться к Oracle APEX 20.2 по следующему адресу: http://localhost:8080/ords

Вместо localhost можно указать адрес 127.0.0.1 или IP адрес хоста. В примере используется IP адрес хоста равный 192.168.0.1. Запускается веб-браузер и выполняется переход к следующему адресу:
http://192.168.0.1:8080/ords

Для информации: по умолчанию, для того чтобы получить доступ к корню APEX через сервисы ORDS необходимо перейти по пути /ords. Если есть необходимость использовать путь /apex для доступа к APEX, то потребуется переименовать файл ords.war в apex.war перед началом установки и настройки ORDS.

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

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

Далее задается название, идентификатор и описание рабочего пространства. В примере ниже задается имя рабочего пространства «Dushanbe» и краткое описание. По умолчанию система сама генерирует идентификатор рабочего пространства.

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

В примере для поля Re-use existing schema выбирается значение Yes и в Schema Name указывается тестовая и учебная схема/пользователь hr.

Это даст возможность использовать связанные таблицы с готовыми тестовыми данными, представления, триггеры, данные и другие объекты схемы hr во время создания приложений в APEX.

Нажимается Next и выполняется переход на шаг создания пользователя с административными правами для нового создаваемого пространства – Dushanbe. Для нового пространства тоже создается пользователь с именем Admin. Указываются пароль, имя, фамилия и email администратора нового создаваемого пространства для разработки приложений:

Нажимается Next и выполняется переход на следующий шаг – подтверждения настроек нового рабочего пространства:

После нажатия Create Workspace начнется создание рабочего пространства и при успешном завершении система выдаст следующее сообщение:

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

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

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

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

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

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

Необходимо учитывать, что после перезагрузки  операционной системы сервис будет недоступен. Для запуска  ORDS необходимо вручную запустить следующую команду java -jar ords.war standalone из директории ords (в данном примере из /home/oracle/ords):

[oracle@dushanbe ords]$ pwd
/home/oracle/ords
[oracle@dushanbe ords]$ java -jar ords.war standalone

Если закрыть консоль операционной системы, то сервис ords выполнявшийся в ней завершится. Во избежание этого необходимо команду java -jar ords.war standalone запустить в фоновом режиме, используя nohup:

[oracle@dushanbe ords]$ nohup java -jar ords.war standalone &

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

Разработка приложений стала связана с бизнесом. Стремительное развитие технологий требует эффективных инструментов, позволяющих быстро, просто создавать высококачественные приложения. В этой статье мы рассмотрим одну из таких платформ — Oracle Application Express, или Oracle APEX.

Oracle Application Express (APEX) – это низкокодовая платформа для разработки, основанная на базе данных Oracle. Апекс предоставляет среду для создания, развертывания бизнес-приложений непосредственно в браузере. Она позволяет разработчикам быстро создавать интерактивные, мощные сервисы с использованием SQL, PL/SQL, без необходимости в особом знании веб-технологий.

Преимущества Oracle APEX

  1. Простота использования: платформа предлагает интуитивно понятный интерфейс, обширную библиотеку инструментов для создания приложений. Разработчики могут использовать графический интерфейс для создания интерфейсов, настройки безопасности, управления данными, многое другое.
  2. Интеграция с базой данных: Апекс основан на базе данных Oracle, что обеспечивает прямой доступ к данным. Разработчики могут использовать SQL, PL/SQL для манипуляции данными, создания сложных бизнес-логик.
  3. Широкие возможности: предоставляет множество встроенных компонентов, шаблонов, таких как формы, отчеты, графики, дашборды, что упрощает создание разнообразных типов программ.
  4. Масштабируемость: продукты, созданные с помощью этого сервиса, могут быть масштабированы для работы с тысячами пользователей. Он также поддерживает интеграцию с другими системами, сервисами, что делает его гибким решением для различных бизнес-потребностей.
  5. Активное сообщество: здесь активное сообщество разработчиков, которые делятся своими знаниями, опытом, создают расширения, которые можно использовать для расширения возможностей.

Установка Oracle APEX

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

Создание приложения в Oracle APEX

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

Шаг 1: Вход в систему

  1. Откройте веб-браузер, введите URL-адрес Oracle APEX.
  2. Введите свои учетные данные для входа в систему.

Шаг 2: Создание нового приложения

  1. Нажмите кнопку «Создать» на панели инструментов.
  2. Выберите «Новое приложение», введите его название, описание.
  3. Выберите шаблон, который вам нужен.

Шаг 3: Создание страниц

  1. Перейдите на вкладку «Страницы» в вашей новой программе.
  2. Нажмите кнопку «Создать», выберите тип страницы, например, «Форма для ввода данных».
  3. Настройте компоненты страницы, такие как поля ввода, кнопки сохранения.
  4. Используйте SQL, PL/SQL для определения действий, которые должны выполняться при сохранении данных.

Шаг 4: Добавление отчетов, графиков

  1. Перейдите на вкладку «Отчеты» в вашей программе.
  2. Нажмите кнопку «Создать», выберите тип отчета, например, «Таблица с постраничной навигацией».
  3. Определите источник данных для отчета, используя SQL запросы.
  4. Настройте отображение отчета, выбрав необходимые столбцы, сортировку.

Шаг 5: Развертывание приложения

  1. Перейдите на вкладку «Развертывание».
  2. Выберите опции развертывания, такие как схема базы данных, URL-адрес приложения.
  3. Нажмите кнопку «Развернуть», чтобы разместить ваше приложение на веб-сервере.

Где можно использовать Oracle APEX

Oracle APEX может быть использован в различных сферах, для разных целей. Вот некоторые примеры:

  1. Внутренние бизнес-приложения: он позволяет быстро создавать приложения для автоматизации бизнес-процессов внутри компании. Это могут быть системы управления контентом, системы управления проектами, системы отслеживания задач, учетные системы, многое другое.
  2. Отчетность, аналитика: можно создавать мощные отчеты, дашборды для анализа данных. Вы можете визуализировать данные в виде графиков, диаграмм, таблиц, др., что поможет вам принимать информированные решения на основе анализа данных.
  3. Внешние веб-приложения: позволяет создавать клиенты для ваших пользователей. Это могут быть системы управления заказами, интернет-магазины, порталы самообслуживания клиентов, многое другое.
  4. Мобильные приложения: поддерживает разработку для мобильных ОС. Вы можете создавать продукты, которые могут работать на разных устройствах, операционных системах, обеспечивая удобство, доступность для ваших пользователей.
  5. Прототипирование, MVP: если у вас есть идея, Апекс может быть отличным инструментом для создания прототипов или минимально жизнеспособных продуктов (MVP). С его помощью вы можете быстро развернуть основные функции приложения, получить обратную связь от пользователей.

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

Заключение

Oracle APEX – мощная, простая в использовании платформа для разработки программ для бизнеса. Она предоставляет разработчикам инструменты для разработки. Oracle APEX поможет разрабатывать приложения быстро и просто.

5 — представления

Представления — это хранимые в БД запросы на выборку данных. Для поиска, вывода данных из нескольких таблиц ничего лучше представлений не придумано.

А вот пробуем для мобильных устройств qr-код для ссылки на видео. На смартфоне необходимо скачать и установить приложение для считывания QR кода. Запустите его и отсканируйте QR код с помощью встроенной камеры. Программа декодирует этот код и выведет его содержимое на дисплей смартфона.

 

QRCode

4 — вводим данные в таблицы

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

4 — вводим данные в таблицы

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

Как эти данные внести в таблицу Oracle?

Рассмотрим 1 способ, самый легкий. Если структура вашей таблицы в БД Oracle совпадает со структурой таблицы в БД Access или Excel, то можно просто импортировать таблицу из одной БД в другую. Выполните команды 

  • Далее требуется выбрать куда (Load to) закачивать данные: если таблица уже существует в БД Oracle, то выбираем Existing Table. Если создаем новую таблицу — New Table.
  • Потом выбираем, откуда загружать данные (Load from) : из файла (Upload file)  или копируем через буфер обмена Windows (Copy and paste).

Предположим, мы решили копипастить  данные в новую таблицу.Выберем обе нижние радиокнопки и нажмем кнопку NEXT.

  • На следующем шаге импорта мастер предлагает вставить данные из буфера в окошко, расположенное в центре страницы. Сначала откроем таблицу в Access, выделим все строки и нажмем клавиши  Ctrl+C (копировать). Затем щелкнем мышью в окошке на страницу APEX и нажмем CTRL+V (вставить). В окне появятся данные из вашей таблицы. Проверьте самую первую строчку: там должны быть названия столбцов.
  • Если имена полей совпадают в обеих базах, то жмите кнопку NEXT. Но если вы предполагаете переименовать поля, то сначала исправьте их названия в окошке со вставленными данными, чтобы они совпадали с именами полей в БД Oracle Apex. 

На следующем шаге мастер выводит всю структуру таблицы и данные. Здесь нужно ввести имя таблицы, проверить и исправить  тип, длину и имена полей. Если какие-то столбцы не нужны, можно выбрать No в строке  Upload.

В нашем примере изменим русские имена полей на латиницу, уменьшим до 15 символов длину полей с телефоном. Затем переходим к следующему шагу.
Здесь мы выбираем первичный ключ (можно также создать новый)  так же, как в предыдущем уроке. Наконец, жмем кнопку Load Data. 

В нашем примере изменим русские имена полей на латиницу, уменьшим до 15 символов длину полей с телефоном. Затем переходим к следующему шагу.
Здесь мы выбираем первичный ключ (можно также создать новый)  так же, как в предыдущем уроке. Наконец, жмем кнопку Load Data. 

Появляется список всех загруженных таблиц, где можно просмотреть результаты импорта, например, возможные ошибки. Если загрузка данных прошла успешно, то щелкнув по имени таблицы, мы переходим на страницу Object Brouser с открытой структурой таблицы. Выберите Data в списке команд над таблицей — и вы увидите свои данные.

Теперь можно редактировать данные, щелкнув по значку в столбце Edit в строке, которую нужно изменить. Apex не позволяет изменять данные прямо в табличном формате, как вы привыкли в Access. Вместо этого он открывает анкетную форму для редактируемой записи.

Посмотрите видео (по-английски) о том, как импортировать данные с помощью SQL Workshop (https://www.youtube.com/watch?v=pfG3r6A1Wx8).

Задание 1. Выберите одну из таблиц в БД Access  и импортируйте данные из неё в БД APEX. 

Итак, мы плавно перешли ко второму способу ввода данных в таблицы:  сразу после входа в APEX выполните
SQL WorkshopObject Browser. 

Выберите нужную таблицу в левом столбце,  выполните команду Data. Затем введите несколько строк, как рассказано чуть выше.

Задание 2. Введите несколько строк в небольшую таблицу путем прямого ввода данных в APEX. 

Наконец, третий способ ввода данных — это SQL-команда INSERT.  Рекомендую использовать SQL-скрипт, в котором написать все команды для ввода исходных тестовых  данных в вашу БД. Для этого выполните команду
SQL WorkshopSQL Scripts /  Create.

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

SQL-скрипт

Теперь можно редактировать данные, щелкнув по значку в столбце Edit в строке, которую нужно изменить. Apex не позволяет изменять данные прямо в табличном формате, как вы привыкли в Access. Вместо этого он открывает анкетную форму для редактируемой записи.

Посмотрите видео (по-английски) о том, как импортировать данные с помощью SQL Workshop (https://www.youtube.com/watch?v=pfG3r6A1Wx8).

Задание 1. Выберите одну из таблиц в БД Access  и импортируйте данные из неё в БД APEX. 

Итак, мы плавно перешли ко второму способу ввода данных в таблицы:  сразу после входа в APEX выполните
SQL WorkshopObject Browser. 

Выберите нужную таблицу в левом столбце,  выполните команду Data. Затем введите несколько строк, как рассказано чуть выше.

Задание 2. Введите несколько строк в небольшую таблицу путем прямого ввода данных в APEX. 

Наконец, третий способ ввода данных — это SQL-команда INSERT.  Рекомендую использовать SQL-скрипт, в котором написать все команды для ввода исходных тестовых  данных в вашу БД. Для этого выполните команду
SQL WorkshopSQL Scripts /  Create.

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

SQL-скрипт



Вы можете добавлять данные сразу в несколько таблиц. Начните с родительских, а в конце добавьте команды заполнения дочерних таблиц. Когда вы закончите, не забудьте придумать и ввести имя скрипта, затем нажмите кнопку  RUN.
Вы увидите список выполненных скриптов, где выберите последний выполненный скрипт и нажмите на значок в самой правой колонке (View Results). Apex выводит результаты выполнения каждой команды скрипта. Если имеются ошибки, то выводится сообщение и код ошибки. Детально увидеть каждую команду и ее результаты можно, выбрав режим Detail, как на рисунке:

результат скрипта

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

Задание 3.  Составьте SQL-скрипты для ввода данных в каждую таблицу в БД APEX. На каждую таблицу сделайте отдельный скрипт. Проведите  отладку скриптов,  Сохраните текст скриптов во внешнем текстовом файле.

В заключение замечу, что наше APEX- приложение будет иметь специальные формы для  пользователя, где он сможет редактировать данные в таблицах, не обращаясь к SQL-workshop. Как и в Access, приложение будет более удобно для пользователя, чем средства, предназначенные для разработчиков. 

3 — анализируем структуру БД и создаем таблицы

Рассмотрим, как настроить структуру базы данных на примере схемы, показанной на рисунке

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

Задание 3.  Составьте SQL-скрипты для ввода данных в каждую таблицу в БД APEX. На каждую таблицу сделайте отдельный скрипт. Проведите  отладку скриптов,  Сохраните текст скриптов во внешнем текстовом файле.

В заключение замечу, что наше APEX- приложение будет иметь специальные формы для  пользователя, где он сможет редактировать данные в таблицах, не обращаясь к SQL-workshop. Как и в Access, приложение будет более удобно для пользователя, чем средства, предназначенные для разработчиков. 

3 — анализируем структуру БД и создаем таблицы

Рассмотрим, как настроить структуру базы данных на примере схемы, показанной на рисунке

Схема БД Access «Прием заказов и их анализ»

Голубым цветом выделена часть БД, которая нужна приемщику заказов, желтым цветом — часть схемы для пользователя — аналитика, а серым — общие для обоих таблицы. Примерно так вы можете разделить между собой работу по созданию таблиц в Oracle APEX. Значит, первое задание:

разделить таблицы БД между разработчиками проектов, в соответствии с темой проекта. Общие таблицы поделите на двоих, либо работайте над ними вместе.

Далее продумайте, какие типы полей Oracle вы будете использовать вместо типов Access. См. с.6-7 методички.

Например:

Тип поля Access

Тип поля Oracle

 Числовой, все
форматы, в том числе:

VARCHAR 2 — текстовые строки переменной длины до 4000
байт.

Поле MEMO

LONG — текстовые строки длиной до 2 ГБ

CLOB – тексты длиной до 4 Гб

Чтобы не запутаться в таблицах своей базы  данных, мы можем а) создать несколько схем БД в одной рабочей области или б) имена объектов одного  проекта начинать с одного и того же префикса. Воспользуемся вариантом Б: три первые буквы вашего логина будем писать перед именем каждой таблицы, например: spo_zakaz, res_zakaz и т.д.  То же самое касается представлений, приложений и прочих объектов в вашей БД.

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

Напечатайте схему своей БД, напишите на схеме типы полей Oracle, названия полей и таблиц (без пробелов и все английскими буквами)

Разберемся с ключами. Первичный ключ таблицы в БД Oracle легче всего делать из объекта Sequence (секвенция), это что-то вроде отдельно живущего счетчика. Можно создать по счетчику для каждой таблицы, тогда выбирайте populated from a new sequence. Если вам нужен составной ключ или ключ без автоматического наращивания значения, то выбирайте последний вариант Not poulated.

Внешние ключи (foreign key) и связи между таблицами описываем также сразу во время создания таблицы. Внешний ключ должен ссылаться на первичный ключ в другой таблице. Поэтому создание БД начните с родительских таблиц: тех, от которых отходит связь с мощностью 1, так как при создании дочерних таблиц вам придется указывать ссылку на поле родительской таблице. Например, когда вы начнете делать таблицу ЗАКАЗ, таблицы КЛИЕНТЫ и ТИПЫ_ДОКУМЕНТОВ уже должны быть созданы.

При описании таблиц мы сразу же вводим и ограничения целостности: обязательные поля (NOT NULL), уникальные поля (Unique),  диапазон допустимых значений поля (длина и точность, а также условие проверки Check), каскадное действие при удалении. 

Задание третье:

подчеркните на схеме БД простые первичные ключи, подчеркните волнистой линией внешние ключи. Если есть составной первичный ключ — добавьте дополнительное поле ИД_данной сущности и сделайте его ключом. Не забудьте заменить внешние ключи в дочерних таблицах на это новое поле.

Напоследок советую посмотреть видео урок, где рассказано, как создать простейшее приложение. Нам из этого урока достаточно понаблюдать за технологией создания таблиц. 
Пользуемся диалоговым режимом APEX, который похож на «Конструктор таблиц» Access: выполните команду SQL WorkShop / Create Data Base Object / Table — и вперед! Теперь вы полностью готовы к созданию таблиц. 



Задание четвертое:

разработайте сначала вместе с партнером по проекту общие таблицы, а затем каждый самостоятельно — свою часть базы данных. Скопируйте SQL-скрипты, которые генерирует APEX после создания каждой таблицы, в обычный текстовый файл. Это сильно поможет вам, если база данных вдруг сломается.

2 — логинимся

В каждом посте мы продвинемся на шаг вперед. И в конце Вы увидите, что мы сделали это! Если вдруг у вас что-то не выходит — пишите вопросы и пробуйте ответить на вопросы других. Мы можем также делиться друг с другом сообщениями прямо в Oracle Apex! 

Oracle Application Express (Oracle APEX) представляет собой среду для быстрого создания и разворачивания веб-приложений.  Небольшое описание этой программы вы можете прочитать здесь и здесь (используйте эти сведения при подготовке введения в вашем проекте).  Oracle Application Express сочетает в себе высокую производительность, безопасность, интегрируемость и масштабируемость корпоративных БД, разработанных на основе веб-технологий, с простотой использования, доступностью и гибкостью персональных БД.

Существует несколько версий системы: 
1) во-первых, вы можете бесплатно скачать дистрибутив, установить СУБД Oracle и приложение APEX на своем компьютере и обходиться без интернета, однако тут вам потребуется детальнее разобраться в установке и сопровождении СУБД Oracle 11g, так как она является основой среды разработки. Все сбои, резервирование и восстановление системы вы будете делать сами. После окончания проектирования, для сдачи проекта вам нужно продемонстрировать его работу преподавателю. При этом либо вы не выключаете свой домашний компьютер, чтобы получить к нему доступ из университета, либо публикуете свой проект на каком-либо стороннем хостинге, либо приносите проект вместе с ноутбуком.
Этот вариант хорош, так как вы получаете дополнительный опыт, но есть опасность не успеть его выполнить из-за технических трудностей. Рекомендую этот вариант для уверенных в себе и желающих в дальнейшем получить высокооплачиваемую работу администратора БД Oracle, а также для тех, у кого очень плохой интернет.
2) во-вторых, вы используете облачную версию APEX и тогда вам НЕ нужна установка и обслуживание ничего, кроме браузера. Правда, требуется высокоскоростной доступ в интернет, так как и база данных, и средства ее разработки находятся в «облаке». 
Сейчас существует два облачных сервера APEX:

  • бесплатная демонстрационная версия 5.0: https://apex.oracle.com, рекомендую этот вариант для всех. В этом варианте ограничивается объем базы данных  и не разрешено коммерческое использование.
  • коммерческий облачный сервер базы данных (вместе с APEX) — https://cloud.oracle.com/database, минимальная стоимость сервиса – 600 долларов в
    месяц. Это для тех, кто думает делать свой бизнес вместе с Oracle.
  • Загрузка автономной версии: http://www.oracle.com/technetwork/developer-tools/apex/downloads/index.html.


Рассмотрим, как начать работать с облаком APEX 5.0.
Сначала зайдите на главную страницу APEX:

Рисунок 1

Нажмите на большую кнопку  «Request a free workspace» (см. рисунок) и зарегистрируйтесь: вам нужно выбрать цель использования сервиса (Application Development), ввести имя, фамилию, работающий email и наименование вашей рабочей области, затем ввести обозначение схемы БД (schema name), попросить 10 или 25 Мб места,  а на следующем экране ответить на анкету (что вам нужно от APEX, как давно вы его используете, готова ли ваша организация ссылаться на APEX и готовы ли вы связываться с Oracle по поводу применения APEX). Далее читаете соглашение и подтверждаете его.
На указанную вами почту придет подтверждение регистрации, подтвердите его —  и можете работать.  Сделайте на рабочем столе компьютера ярлык для быстрого
входа в APEX,
скопировав URL из
адресной строки браузера. 

На странице авторизации APEX вы вводите c учетом регистра идентификатор рабочей области, логин и пароль (советую сразу записать их в блокноте, на телефоне, на стене или там, где вы их не потеряете!!! )

После авторизации вы попадаете на главную страницу среды разработки APEX:

Рисунок 2 — меню APEX

Тут посреди страницы нас ждут 4 огромные цветные кнопки, которые в точности совпадают с пунктами главного меню, что выводится наверху окна.  Правый столбик — вспомогательный, можно на него пока не обращать внимания. В середине окна — новости, тут выводятся все сообщения, которые пользователи оставляют друг другу. Добавьте радостную весть, что вы тоже подключились к нашему проекту! Две нижних панели — статистика, какие приложения и пользователи работали в последнее время. Вверху справа 4 серых кнопки: поиск,
администрирование, помощь, профиль пользователя и выход.

Пощелкайте по кнопкам и посмотрите, что тут к чему. Например:

  • смените пароль,  выбрав в меню Administation / Manage User and Groups/Change My Password;
  • добавьте пользователей вашей базы данных: различают 3 группы пользователей: администратор сайта (он
    может всё, в том числе он должен описать всех остальных), разработчики (они
    могут изменять проект сайта), гости – открывают готовое веб-приложение.
  • попробуйте создать и поиграть с одним из множества типовых демонстрационных приложений (рисунок 4): 
    рисунок 3 — галерея типовых приложений

И привыкайте к англоязычному интерфейсу! Можете включить онлайн-переводчик Google, если совсем забыли английский.

Что дальше?  

В следующем уроке мы узнаем, что можно хранить в базе данных Oracle Apex.

1 — оформляем ТЗ

Привет!
Мы начинаем делать курсовой проект с помощью этого демонстрационного облачного сервиса
Тем самым мы познакомимся сразу с тремя новейшими ИТ: базой данных Oracle, средой быстрой разработки приложений Oracle Apex 4.2 и облачными сервисами.

Вам нужны: интернет, ваша тема проекта и список функций, которые должно выполнять приложение. Все это написано в техническом задании к проекту. Для студентов ПГТА образец задания и темы доступны на странице курса «Базы данных» в Moodle.
Например:

Тема проекта:  «Разработка базы данных для учета заказов и
расчетов с клиентами  ресторана»

Технические требования на проектирование:

База данных предназначена для оперативного ввода, хранения и поиска
информации о заказах клиентов ресторана в течение 1 месяца.  Пользователем БД является администратор
ресторана. Результаты запросов выводятся на экран устройства в табличном и /
или графическом виде. Для обеспечения целостности БД предусмотреть контроль
данных, вводимых пользователем.

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

Среда реализации БД и приложения —  Oracle Application Express (облачный сервис http://apex.oracle.com).

Функции приложения БД:

— оперативный ввод, редактирование и просмотр заказов;

— ведение клиентской базы (ввод, коррекция, удаление, поиск
информации о клиентах, формирование карточки постоянного клиента);

— выборка товаров из меню в заданной группе в заданном
ценовом диапазоне;

— расчет суммарной стоимости заказа и формирование квитанции;

— отчет о суммарной стоимости заказов по каждому клиенту за
месяц;

— вывод сведений об авторе и назначении программы;

— помощь пользователю в html-формате.

Объем работы по курсу

1.                Расчетная часть:

1.1.            Анализ среды разработки

1.2.            Проектирование структуры БД

1.3.            Разработка приложения APEX.

1.4.            Разработка руководства пользователя.

2.                Графическая часть:

2.1.                       
Схема базы данных

2.2.                       
Иерархическая функциональная
диаграмма

2.3.                       
Диаграмма потоков
данных

2.4.                       
Презентация к защите

3.                Экспериментальная часть:

3.1.                Разработка таблиц, ввод
тестового примера

3.2.                Разработка SQL-скриптов

3.2.                Разработка страниц приложения в
среде
Oracle APEX

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

     1. Проектирование структуры БД, разработка
SQL— скриптов, ввод данных тестового примера  — к  15.03.2013

     2. Разработка страниц приложения – к 15.04.2013

     3. Оформление пояснительной записки —
к  15.05.2013

     4. Оформление графической части,
подготовка доклада и защита — до 31.05.2013

Итак, для начала получите ваш вариант задания у преподавателя, оформите лист ТЗ и подпишите его. Дальше — посмотрим, что такое этот APEX.

Понравилась статья? Поделить с друзьями:
  • Optisana d vita инструкция 10mg
  • Optisana d vita 50 инструкция по применению
  • Optipoint 500 advance инструкция на русском siemens
  • Optimus котел газовый котел инструкция
  • Optimus rkit 200 инструкция по настройке