воскресенье, 25 марта 2012 г.
воскресенье, 11 марта 2012 г.
install Tora 2.1.3 on Fedora 16
Скачиваем исходники и достаем из архива:
Устанавливаем зависимые пакеты:
Понадобится переменная окружения LD_LIBRARY_PATH:
Теперь неменого подправим файл src/Makefile.am: в блоке BUILT_SOURCES нужно добавить moc_toawr.cpp:
Конфигурируем и собираем (предполагается, что на машине есть Oracle):
cd Downloads wget http://downloads.sourceforge.net/project/tora/tora/2.1.3/tora-2.1.3.tar.bz2?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Ftora%2Ffiles%2Flatest%2Fdownload&ts=1331490264&use_mirror=ignum tar -jxvf tora-2.1.3.tar.bz2
Устанавливаем зависимые пакеты:
su -c 'yum install qt-devel qscintilla-devel'
Понадобится переменная окружения LD_LIBRARY_PATH:
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
cd tora-2.1.3/
Теперь неменого подправим файл src/Makefile.am: в блоке BUILT_SOURCES нужно добавить moc_toawr.cpp:
... # files listed in BUILT_SOURCES are built before anything else. BUILT_SOURCES = \ moc_toawr.cpp \ moc_toabout.cpp \ moc_toalert.cpp \ ...
Конфигурируем и собираем (предполагается, что на машине есть Oracle):
./configure --prefix=/usr --with-oracle=$ORACLE_HOME --with-oracle-libraries=$ORACLE_HOME/lib make su -c 'make install'
пятница, 9 марта 2012 г.
Extract Oracle DDL to File
Простой скрипт для выгрузки DDL-кода Oracle-объекта в файл.
GenDDL.sql:
1) Пользователь (схема);
2) Объект;
3) Файл для выгрузки.
Пример запуска:
GenDDL.sql:
SET TERMOUT OFF
SET VERIFY OFF
SET ECHO OFF
SET LONG 9000000
SET LONGC 900
SET LINES 400
SET TRIMSPOOL ON
SET PAGES 0
SET FEEDBACK OFF
SET HEAD OFF
SET SQLBLANKLINES OFF
SET SERVEROUTPUT ON
BEGIN
DBMS_METADATA.set_transform_param (DBMS_METADATA.session_transform,
'PRETTY',
TRUE);
DBMS_METADATA.set_transform_param (DBMS_METADATA.session_transform,
'SQLTERMINATOR',
TRUE);
DBMS_METADATA.set_transform_param (DBMS_METADATA.session_transform,
'SEGMENT_ATTRIBUTES',
FALSE);
DBMS_METADATA.set_transform_param (DBMS_METADATA.session_transform,
'STORAGE',
FALSE);
DBMS_METADATA.set_transform_param (DBMS_METADATA.session_transform,
'TABLESPACE',
FALSE);
DBMS_METADATA.set_transform_param (DBMS_METADATA.session_transform,
'REF_CONSTRAINTS',
TRUE);
DBMS_METADATA.set_transform_param (DBMS_METADATA.session_transform,
'SPECIFICATION',
TRUE);
DBMS_METADATA.set_transform_param (DBMS_METADATA.session_transform,
'BODY',
TRUE);
DBMS_METADATA.set_transform_param (DBMS_METADATA.session_transform,
'CONSTRAINTS',
TRUE);
DBMS_METADATA.set_transform_param (DBMS_METADATA.session_transform,
'STORAGE',
TRUE);
DBMS_METADATA.set_transform_param (DBMS_METADATA.session_transform,
'CONSTRAINTS_AS_ALTER',
TRUE);
END;
/
SPOOL '&&3'
BEGIN
FOR i IN (SELECT owner,
object_type,
object_name,
created d
FROM all_objects
WHERE owner = '&&1' AND object_name = '&&2')
LOOP
DBMS_OUTPUT.Put_Line (
DBMS_METADATA.get_ddl (REPLACE (i.object_type, ' ', '_'),
i.object_name,
i.owner));
END LOOP;
END;
/
SPOOL OFF
EXIT
Используется 3 входных параметра:1) Пользователь (схема);
2) Объект;
3) Файл для выгрузки.
Пример запуска:
rlwrap sqlplus -silent=true objectman@XE/objectman @/home/maksim/projects/AntOraDDL/GenDDL.sql OBJECTMAN MYBOOKS /home/maksim/projects/AntOraDDL/mybooks.sql
воскресенье, 4 марта 2012 г.
Автодополнение в sqlplus
Наконец нашел то, чего так не хватало в sqlplus'е - простой GPL'ный фрон енд - gqlplus:
- Навигация по истории команд;
- Редактор командной строки (правда все это есть в rlwrap);
- Автододополнении для имен таблиц и колонок (вот это действительно здорово).
Плюс ко всему этому имеются собранные deb и rpm пакеты.
- Навигация по истории команд;
- Редактор командной строки (правда все это есть в rlwrap);
- Автододополнении для имен таблиц и колонок (вот это действительно здорово).
Плюс ко всему этому имеются собранные deb и rpm пакеты.
понедельник, 6 февраля 2012 г.
воскресенье, 5 февраля 2012 г.
hEAVy database model
Отличная статья by Tim Gorman, посвещянная EAV моделям.
Позволю себе привести пример из этой статьи.
Запрос для реляционной модели:
Позволю себе привести пример из этой статьи.
Запрос для реляционной модели:
Select name,
mailing_street_addr1,
mailing_street_addr2,
mailing_city,
mailing_state_province,
mailing_postal_zip,
...
from company
where company_id =
Этот же запрос, но для EAV модели:Select cn.description,
ma.string82,
ma.string83,
mc.string44,
mc.string63,
mz.numeric31,
...
from data c,
data cc,
data cn,
data ma,
data mc,
data mz,
data ...
where c.description = 'CUSTOMER'
and cc.entity_id = c.sysno
and cc.description = 'COLUMN'
and ma.column_id = cc.sysno
and ...
четверг, 26 января 2012 г.
Oracle. Администрирование и разработка.: Деление на ноль? Легко!
Oracle. Администрирование и разработка.: Деление на ноль? Легко!: Q: can oracle divide by zero? A: no Q: are you absolutely sure? A: yes Q: then why does this work? select 1 from dual where exists (sel...
Подписаться на:
Сообщения (Atom)