пятница, 29 июня 2007 г.

Релиз Apex 3.0.1

Cегодня состоялся релиз Oracle Application Express 3.0.1! Это первая заплатка к Apex 3.0., в которой представлены следующие основные изменения:


  • Возможность прямой установки в Oracle Database XE (версия 3.0 такой возможности не предоставляла)

  • Поддержка миграции из Oracle Database XE в Oracle Standart/Enterprise Edition 10.2.0.3

  • Поддержка интеграции с Oracle SQL Developer 1.2

  • Включена поддержка конфигурации Apache FOP для использования в качестве сервера отчетов для печати PDF

  • Различные улучшения в стабильности и безопасности

Ознакомиться с процессом установки заплатки и ошибками, которые она исправляет, можно в "patch set notes". Кроме того, о различиях между версиями APEX 2.1 and 3.0.1, а так же об обновлении с 2.1 на 3.0.1 можно узнать из статьи "Oracle Database XE and Application Express 3.0.1"

Скачать заплатку можно отсюда.
ps: судя по сообщениям форума, установка новой заплатки уже идет полным ходом и весьма небезуспешно.

Подробнее...

понедельник, 25 июня 2007 г.

Oracle выпускает плагин для Eclipse

Совсем недавно Oracle присоединилась к Eclipse Foundation... и вот результат - выпущен Oracle Database Plugin, расширяющий возможности Eclipse Data Tools Platform (DTP).
Плагин предоставляет следующие возможности:

  • соединение с БД Oracle версий 9iR2 и выше

  • просмотр объектов БД и навигация по ним

  • выполнение хранимых процедур и функций

  • графическое и текстовое представление планов выполнения

Инсталляция плагина очень проста (как и любого другого плагина для Eclipse). Необходимо либо прописать "http://download.eclipse.org/datatools/updates" в меню "Help->Software Updates->Find", либо скачать архив с плагином и распаковать его в директорию Eclipse. Работать с новым плагином можно будет после перезагрузки.

Информацию об установке и основных функциях можно получить на OTN. Кроме того, на OTN появилась соответствующая ветка форума, где, правда, пока мало информации, но, думаю, в перспективе, это будет первоисточник путей решений проблем с новым плагином.

Подробнее...

среда, 20 июня 2007 г.

Oracle 11g гредет....

Oracle официально объявила о дате выпуска очередной версии СУБД - Oracle 11g. Это событие запланировано на 11 июля 2007 года и пройдет оно в Нью-Йорке. На конференции OpenWorld (в октябре прошлого года) представители Oracle пролили немного света на изменения, которые войдут в 11ый релиз. Как всегда, обещаются улучшения производительности, масштабируемости и т.д. Кроме того, была обещана новая технология компрессии данных, которая позволит значительно сократить размер БД, и механизм хранения неструктурированных данных... Но что же нас ждет на самом деле? Узнать более подробную информацию о нововведениях можно узнать как минимум в двух местах:


Как всегда, много всяких улучшений и новинок, наиболее интересными среди которых мне показались следующие:
  • Новый тип данных "simple_integer". Переменные это типа всегда NOT NULL и работа с ними выполняется быстрее, чем с переменными типа PLS_INTEGER.

  • Серверный пул соединений (server-side connection pooling). Позволяет нескольким клиентам использовать один и тот же пул сессий(должен совпадать USERID). Клиенты могут соединяться/отсоединяться с БД без затрат на создание серверной сессии.

  • Кэширование результатов запроса. Результаты SQL-запросов кэшируются. Размер кэша устанавливает DBA. Включается функциональность для таблицы следующей командой:
     alter table _ТАБЛИЦА_ cache results 

  • Виртуальные колонки (Virtual columns). Виртуальные колонки представляют из себя функции.Соответственно, индексы по таким колонкам являются индексами над функциями. В выражениях могут использоваться: колонки таблицы, константы, SQL-функции или функции, созданные пользователем. Поддерживается так же секционирование. Виртуальные колонки не могут использоваться в индексно-организованных (index organized) или внешних (external) таблицах. Прямая запись для таких колонок не возможна.

  • Ключевое слово "super" для объектно - ориентированных DDL. Новое ключевое слово используется в экземплярах производного типа (перегруженного) для того, чтобы сослаться на базовый класс, от которого текущий был унаследован.

  • Ключевое слово "continue" в циклах. Без комментариев... :)... давно пора.

  • Хранилище XML (XML data storage). Начиная с 11ой версии, XML можно хранить как CLOB или бинарный тип данных.

  • Автоматическое секционирование. Автоматическое создание секций.

  • Порядок срабатывания тригера. Можно указывать порядок выполнения тригеров.

  • Невидимые индексы (Invisible indexes). Вместо того, чтобы удалять индекс, если он более (или пока) не нужен, можно просто сделать его невидимым. В результате при выполнении SQL-запросов этот индекс использоваться не будет.

  • Создание и перестроение индекса в online (create and rebuild index online). Создание и перестроение индекса может выполняться при выполнении DML операции над таблицей. Ранее для этого требовалась эксклюзивная блокировка. Кроме того, перестроение индекса (rebuild) быстрее, чем удаление (drop) и создание (create) индекса.

  • Использование последовательностей в PL/SQL. Ранее, для того, чтобы получить следующее значение из последовательности (sequence.nexval) необходимо было использовать явный или неявный курсор (SQL). Теперь курсор более не нужен, и следующий код будет работать:
    v_val := Sequence.nexval;

  • Read-only таблицы. К таким таблицам не применимы DML-операции, а так же select for update. Перевод в данный режим таблиц выполняется следующей командой:
     alter table _ТАБЛИЦА_ read only 

... т.д. Список, естественно, не полный. Окончательный будет известен только после официального релиза. Ждем....

Подробнее...

пятница, 15 июня 2007 г.

Apex. Фиксируем габариты отчета.

Читая один из англоязычных блогов по Oracle Application Express, наткнулся на одну интересную хитрость.
Суть проблемы заключается в том, что для отчетов с большим количеством записей есть только 2 пути для отображения:


  • либо настраивать постраничный вывод (pagination)

  • либо показывать все записи и позволять пользователю скроллировать страничку


Автор предлагает третий вариант (своего рода, усовершенствование второго подхода) - зафиксировать габариты отчета и показывать все строки.
Фиксация габаритов очень проста - необходимо в настройках отчета прописать лишь:

  • в "Region Header": < div style="overflow: auto; height: 450px;"> , где вместо "450px" можно писать любую желаемую высоту отчета в пикселях.

  • в "Region footer": < /div >


А именно, необходимо найти описание отчета:

И прописать в соответствующие поля необходимые значения:


Результат, как всегда, можно посмотреть на apex.oracle.com

Подробнее...

воскресенье, 10 июня 2007 г.

Oracle SQL Developer 1.2

Вышла новая версия Oracle SQL Developer. Данная IDE становится все более привлекательной для разработчиков Oracle APEX в силу появления новых фич (анонсировалось в "Отчеты по Apex в SQL Developer" и "Apex и SQLDeveloper - интеграция продолжается").

Со списком новых функциональностей можно ознакомиться на сайте OTN - "Release Notes 1.2". Основными из них являются:


  • поддержка Oracle Application Express (некоторые отчеты, импорт / экспорт приложений)

  • поддержка миграции из сторонних баз данных в Oracle. Поддерживаются:

    • Microsoft Access: 97, 2000, 2002/XP, 2003

    • Microsoft SQL Server: 7, 2000, 2005

    • MySQL: 3, 4, 5

Подробнее...

вторник, 5 июня 2007 г.

Apex и SQLDeveloper - интеграция продолжается

Как уже упоминалось ранее, в последней версии Oracle SQLDeveloper появилась некоторая совместимость с Oracle Application Express. Как оказалось, это не последний шаг в интеграции!
На своем блоге, Крис Райс (принимает участие в разработке Oracle SQLDeveloper), озвучил несколько новшеств в грядущем обновлении. Они касаются экспорта/импорта приложений Apex. Ранее аналогичные манипуляции можно было выполнять только из самого Apex. Так же, Крис приводите несколько снимков, описывающих новшества:

Экспорт приложения:
export apex application

Импорт приложения:
import apex application

Настройки импорта:
apex application import option



Подробнее...

воскресенье, 3 июня 2007 г.

Развертывание приложений Apex : часть 2 (Import)

Продолжаем рассказ о развертывании приложений Oracle Application Express, начатый в заметке "Развертывание приложений Apex : часть 1 (Export)". После того, как приложение было экспортировано из Apex-репозитария на одном сервере, его необходимо проимпортировать в репозитарий другого сервера...

Импорт выполняется через "Application Builder"->"Import"->"Application", где необходимо указать путь к файлу, в котором находится описание импортируемого приложения, тип информации в файле и кодировку:
start to import apex application
Признаком успешного импорта файла в репозитарий является следующее сообщение:
success apex application import
Последним экраном импорта является описание установок развертывания приложения:
apex application deploy
,где:


  • Current Workspace - Название текущей рабочей области

  • Export File Workspace - Название рабочей области импортируемого файла экспорта

  • Export File Workspace ID - Идентификатор рабочей области импортируемого файла экспорта

  • Export File Application ID - Идентификатор приложения в импортируемом файле экспорта

  • Export File Version - Версия файла экспорта

  • Export File Parse As Schema - В рамках какой Oracle схемы выполнялся экспорт файла

  • Application Origin - Происхождение приложения

  • Parse As Schema - В рамках какой Oracle схемы будет выполнять разбор файла экспорта

  • Build Status - Статус приложения после импорта. "Run Application Only" - с приложением можно только запускать на выполнение. "Run and Build Application" - приложение можно как выполнять, так и изменять

  • Install As Application - Идентификатор для нового приложения. "Auto Assign New Application ID" - автоматическое присвоение нового значения для ID приложения. "Reuse Application ID ... From Export File" - использование того ID приложения, который был у него во время экспорта. "Change Application ID" - изменить ID приложения вручную.

Все загруженные файлы хранятся в отдельном репозитарии, посмотреть который можно в "Application Builder" -> "Export Repository". То есть, даже если после развертывания приложение было удалено по каким - то причинам, его можно по-новой развернуть на сервере без повторного испортирта файл.
Кроме возможности развертывания приложения, в репозитарии есть функция удаления файлов импорта. И если уж сам файл удален из репозитария, то для импорта приложения необходимо будет снова выполнить импорт файла на сервер.

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

This page was exported from a different application or from an application in different workspace.
Page cannot be installed in this application.


то необходимо проверить, что ID рабочей области (Workspace ID), откуда экспортировалось приложение, отличается от ID рабочей области, куда приложение устанавливается. В этом случае, надо просто изменить его в файле экспорта на значение Workspace ID, куда устанавливается приложение. Для этого, необходимо найти в начале файла экспорта следующую строку:
wwv_flow_api.set_security_group_id(p_security_group_id=> _Число_);

И заменить "_число_" на значение "Workspace ID", куда устанавливается приложение. Если вы его по каким-либо причинам его не знаете, то просто экспортируйте что-нибудь из этой рабочей области и в начале файла экспорта, в той же строке, будет нужный идентификатор. То есть, приложения должны переноситься между серверами только в рамках одной и той же рабочей области.

В заключении надо сказать, что Oracle Application Express позволяет экспортировать/импортировать не только приложение, но и отдельные его части: страницы , темы оформления, значения по умолчанию, CSS и т.д. В случае экспорта страницы из приложения, необходимо учитывать так же, что на новом сервере должны совпадать не только ID рабочей области, но ID приложения (документация на OTN).

Подробнее...