пятница, 1 августа 2008 г.

Недокументированная опция для статических LOV

Согласно документации, статический список значений (STATIC, STATIC2) определяется следующим образом:


STATIC[2]:Display Value[;Return Value],Display Value[;Return Value]

То есть, получается, чтобы вывести Display Value в котором содержалась бы запятая - невозможно. Однако, как выяснилось, это не совсем так...

Оказывается для STATIC, STATIC2 есть недокументированная опция! (Спасибо за это Patrick Wolf). Недокументированная опция выглядит следующим образом:

STATIC[2](lov-entries-sep,display-return-sep):Display Value[Return Value]Display Value[Return Value]

То есть, чтобы вывести Display Value с запятой, можно, например, определить LOV следующим образом:

STATIC2(;,=):Показывать, но не учитывать=1; Учытвать, но не показывать=2;

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

четверг, 28 февраля 2008 г.

apex.oracle.com обновился до версии 3.1

Официальный общедоступный тестовый инстанс Oracle Application Express был обновлен до версии 3.1. Очевидно, что скоро новая версия Apex будет доступна для загрузки.
Те,кто не подписывался на пробную версию Apex 3.1 (evaluation version) или ничего еще не читал, то с новыми фичами можно ознакомиться в статье "Release 3.1 New Features Sample Application".

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

среда, 16 января 2008 г.

Компиляция TOra в Debian

TOra - расшифровывается как "Toolkit For Oracle" и представляет из себя IDE для таких СУБД как Oracle, MySQL, PostgreSQL. На данный момент является одной из трех полноценных Oracle IDE под Linux (остальные две - это "SQL Developer" от Oracle и "Aqua Data Studio" от AquaFold). Концептуальное отличие - язык программирования исходного кода: "SQL Developer", "Aqua Data Studio" - Java, "TOra" - C++.

На днях пришлось собирать ее из исходных кодов, так как по лицензионным причинам, в стандартной сборке TOra из репозитария Debian GNU/Linux не включена поддержка Oracle.

Все работы велись в Debian Lenny:
$ uname -a
Linux Debian4Test 2.6.22-3-686 #1 SMP Mon Nov 12 08:32:57 UTC 2007 i686 GNU/Linux


Версия TOra:
$ ls -l /usr/src/tora-1.3.22/
-rw-r--r-- 1 root src 3496227 2008-01-15 18:19 tora-1.3.22.tar.gz


Итак... поехали...

  1. Получение Oracle Instant Client
  2. Скачиваем следующие пакеты:
    Или, как вариант, можно скачать соответствующие *.rpm пакеты с сайта Oracle и с помощью утилиты "alien" преобразовать их в *.deb.

  3. Установка Oracle Instant Client

  4. $ sudo dpkg -i oracle-instantclient-basic_10.2.0.3-2_i386.deb
    $ sudo dpkg -i oracle-instantclient-devel_10.2.0.3-2_i386.deb
    $ sudo dpkg -i oracle-instantclient-sqlplus_10.2.0.3-2_i386.deb


    Проверяем, куда был установлен клиент Oracle:
    $ whereis oracle
    oracle: /usr/lib/oracle /usr/include/oracle /usr/share/oracle


  5. Создание файла TNSNAMES.ORA
  6. Создаем файл /usr/lib/oracle/tnsnames.ora и заполняем его необходимыми данными для соединения с экземплярами БД Oracle.

  7. Настройка кэша динамических библиотек
  8. В файл /etc/ld.so.conf добавляем следующую строку:
    /usr/lib/oracle/10.2.0.3/client/lib

    После чего перегружаем кэш:
    $ sudo ldconfig

  9. Настройка переменных окружения
  10. Добавляем следующие строки в файл /etc/profile:
    LD_LIBRARY_PATH=/usr/lib/oracle/10.2.0.3/client/lib:$LD_LIBRARY_PATH
    TNS_ADMIN=/usr/lib/oracle
    export LD_LIBRARY_PATH TNS_ADMIN


  11. Получение и распаковка исходных кодов TOra
  12. Исходный код можно загрузить с оф. сайта:
    $ sudo mkdir /usr/src/tora
    $ cd /usr/src/tora
    $ wget http://switch.dl.sourceforge.net/sourceforge/tora/tora-1.3.22.tar.gz
    $ sudo tar zxvf tora-1.3.22.tar.gz


  13. Подготовка к пересборке TOra
  14. Устанавливаем необходимые модули:
    $ sudo aptitude install g++ gcc autoconf automake flex zlib1g-dev docbook-xsl
    $ sudo aptitude install libqt3-mt-dev libqt3-compat-headers


  15. Сборка TOra
  16. Переходим в директорию с исходным кодом и выполняем конфигурацию:
    $ cd /usr/src/tora/tora-1.3.22/
    $ ./configure --with-oracle=$ORACLE_HOME --with-oci-version=10G CC=gcc-4.2 --without-kde --with-xinerama


    В результате последней операции получаем сообщение об ошибке:
    ...
    checking whether uic supports -nounload ... yes
    checking if STL implementation is SGI like... yes
    checking for oracle... checking oci works... yes
    checking for qscintilla... configure: error: Couldn't compile a simple QScintilla application. See config.log or specify its location with --with-qscintilla-includes
    make: *** [configure-stamp] Ошибка 1


    То есть, в системе не оказалось пакета "libqscintilla-dev". Скачиваем его и повторяем попытки компиляции:
    $ wget http://ftp.pl.debian.org/debian/pool/main/q/qscintilla/libqscintilla-dev_1.7.1-2_all.deb
    $ sudo dpkg -i libqscintilla-dev_1.7.1-2_all.deb
    $ ./configure --with-oracle=$ORACLE_HOME --with-oci-version=10G CC=gcc-2.95 --without-kde --with-xinerama
    $ make
    $ sudo make install

    На этот раз ошибок не появилось.

  17. Запуск TOra
  18. Проверяем, где располагается TOra:
    $ whereis tora
    tora: /usr/bin/tora /usr/lib/tora /usr/local/tora /usr/share/tora /usr/share/man/man1/tora.1.gz


    Запускаем IDE:
    /usr/bin/tora


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