General programming

Source code control for database schema

Posted on

http://www.liquibase.org The easiest way to run Liquibase is to set it to run automatically on startup. Once set up, your database state always matches what your code expects and you have no manual steps to forget. This method works best in environments where you have less control over the deployment process or if you want […]

Oracle DB administering

Parallel operations in Oracle

Posted on

http://www.akadia.com/services/ora_parallel_processing.html Parallel Features The full list of Oracle parallel execution features currently includes the following Parallel Query Parallel DML Parallel DDL Parallel Data Loading Parallel Recovery Parallel Replication How Parallel Execution Works Operations That Can Be Parallelized Oracle can parallelize operations that involve processing an entire table or an entire partition. These operations include: SQL […]

Oracle DB administering

Полномочия Java внутри БД

Posted on

Чтобы хранимый модуль на Java, выполняемый внутри БД, мог обращаться к локальной файловой системе, нужно дать права специальным образом. Чтобы посмотреть текущие права: select * from DBA_JAVA_POLICY where grantee = ‘OWNER’ Предоставить права делать что угодно внутри отдельной директории /u01/dir. Нужно обратить внимание: 1. Просто имени ‘/u01/dir/-‘ (то есть прав на все вложенные директории и […]

Oracle DB programming

Анализ SGA на предмет неправильного использования bind переменных

Posted on

Можно использовать такой запрос select sql_text,address, hash_value, executions, loads, version_count, invalidations, parse_calls from v$sqlarea where version_count > 100; Но лучше следующий Ищем курсоры с несколькими версиями child_address: select address, count(child_address) from v$sql group by address having count(child_address) > 10 Берем оттуда sql и адрес Смотрим, почему разные child’ы: select * from V$SQL_BIND_METADATA where address in […]

Oracle DB administering

Кодировка SqlPlus в Windows

Posted on

Чтобы пользоваться SqlPlus из-под Windows: set NLS_LANG=RUSSIAN_CIS.CL8MSWIN1251 chcp 1251 sqlplus В командном окне (Far) нужно поменять шрифт на Lucida Console NLS_LANG обычно приходится ставить, чтобы в скриптах нормально обрабатывались русские символы, а chcp позволяет понимать сообщения на русском, которые Oracle начинает выдавать после установки NLS_LANG.

Oracle DB administering

Oracle: обновление базы с использованием редакций

Posted on

Основной смысл заключается в том, чтобы пока все пользователи работают с текущей редакцией, создать новую редакцию на основе текущей, внести в нее необходимые изменения (пользователи этого не заметят), протестировать новую редакцию с изменениями и сделать ее текущей. Чтобы пользователи начали работать с новой редакцией они должны закрыть свои старые сессии и открыть новые, т.е. для […]

Oracle DB programming

XSLT преобразование в PLSQL

Posted on

А) Если делать все внутри PLSQL, то есть если есть l_xsl := XMLType(xsl); l_xml := XMLType(xml); для преобразования внутри PLSQL можно использовать 1.  select xmltransform(l_xml, l_xsl).GetClobVal() into l_result from dual; или 2.  l_result := l_xml.transform(l_xsl).GetClobVal(); на небольших размерах xml и xsl 2-й вариант работает раз в 10 быстрее. Б) XMLType можно хранить в таблице: CREATE […]

Oracle DB programming

Как вытащить массив простого типа из XML в PLSQL

Posted on

Основная особенность: высокоуровневые конструкции, которые возвращали бы последовательность элементов по XPath или XQuery можно использовать только SQL-запросе. Они не работають в “чистом” PL/SQL. Если стоит задача парсить XML, не используя select’ы вообще, то для извлечения скалярных значений можно пользоваться extract(xmltype(‘xml text’), ‘some XPath’). Но чтобы получить однородный массив, придется использовать XMLDOM API, как во 2-м […]

Oracle DB administering

Настройка репликации с Oracle на PostgreSQL

Posted on

Особенности: репликация между базами данных Oracle и Не-Oracle через Heterogenous Services поддерживается только для шлюзов “Transparent Gateway”, к которым не относится Gateway for ODBC. Проблема возникает при попытке применить захваченные процессом Streams Capture данные к таблице Postgres через Gateway из-за того, что Gateway for ODBC не поддерживает двухфазный commit. Чтобы обойти проблему можно извлекать захваченные […]

Oracle DB programming

Tools for storing Oracle DDL under version control

Posted on

http://stackoverflow.com/questions/11953316/oracle-put-existing-db-to-version-control Source Control for Oracle can link your existing schemas to Subversion (Windows only): http://www.red-gate.com/source-control-for-oracle/ Command line tool can be useful when you need to deliver changes from Subversion repository to Oracle database. Please give it a try: www.dbapply.com. oracle-ddl2svn – Set of tools for automatization storing of oracle DDL schema in SVN.