Просторы интернета

19 Февраль 2015
Earlier
Ср, Сен 12, 2012
A ref cursor is a variable, defined as a cursor type, which points to, or references a cursor result. A cursor variable which is based on REF CURSOR data type can be associated with different queries at run-time.  The primary advantage of using cursor variables is their capability to pass [...]
Source: imdjkoch.wordpress.com
Чт, Авг 23, 2012
Отличная статья от Танела Поддера: http://tech.e2sn.com/oracle/oracle-internals-and-architecture/recursive-sessions-and-ora-00018-maximum-number-of-sessions-exceeded [...]
Source: www.xt-r.com
Чт, Авг 16, 2012
Apex Listener 2.0 Beta доступен для изучения и скачивания.

Изменения относительно версии 1.1.4

Поддержка нескольких соединений с базой данных.
Утилита командной строки.
Изменение структуры файла конфигурации.
А также:
Moved storage of RESTful Services (aka Resource Templates) to the Oracle Application Express Schema
Design and creation [...]
Source: atyshenko.blogspot.com
Сб, Авг 11, 2012
Christian Antognini опубликовал полный список уровней для 10046-й трассы.
Утащу к себе, пока не запомню :) Repost: Christian Antognini. "Event 10046 – Full List of Levels"

Extended SQL trace (a.k.a. debugging event 10046 at a level higher than 1) is one of the key features provided by Oracle [...]

Source: www.xt-r.com
Сб, Авг 11, 2012

Все, конечно, знают про unwrapper'ы и многие даже пробовали свой написать (и я в том числе, после после презентации Pete Finnigan'а :), но тем не менее забавно, что Oracle в документации к 11.2 прямо-таки "громогласно" заявляет о том, что ничего unwrap от просмотра не защищает, но еще и прямую ссылку [...]

Source: www.xt-r.com
Чт, Авг 09, 2012

We got this error message when we are upgrading Oracle11i to R12.1.3 and many of self service screen are not working because of this issue.

Error Message


oracle.apps.fnd.framework.OAException: oracle.jbo.AttributeLoadException: JBO-27022: Failed to load value at index 84 with java object of type java.lang.String due to [...]
Source: oracleanil.blogspot.ru
Чт, Авг 09, 2012

We got this error message when we are upgrading Oracle11i to R12.1.3 and many of self service screen are not working because of this issue.

Error Message


oracle.apps.fnd.framework.OAException: oracle.jbo.AttributeLoadException: JBO-27022: Failed to load value at index 84 with java object of type java.lang.String due to java.sql.SQLException.
at oracle.apps.fnd.framework.OAException.wrapperException(OAException.java:912)

-----Lines deleted------

## Detail 0 [...]
Source: oracleanil.blogspot.ru
Чт, Авг 09, 2012
Интересная тема с возможными решениями двух стандартных задач:
1) sprintf в oracle в SQL
2) замена по регулярке с вычисляемой заменяемой частью(а ля модификатор "e" в perl) [...]
Source: www.xt-r.com
Вт, Июл 31, 2012
On our production servers we have simple function with result_cache, like this:
create or replace function f_rc(p_id number) return number result_cache
is
ret number;
begin
select t.val into ret from rc_table t where t.id=p_id;
return ret;
exception
when no_data_found then
[...]
Source: www.xt-r.com
Сб, Июл 21, 2012
Тестовая таблица:
create table tclob(c clob);

Что будет выведено кодом из нижеследующих блоков с rollback и без:
declare
cl1 clob;
cl2 clob;
cl3 clob;
cl4 clob;
begin
cl1:='1';
insert into tclob values(cl1) returning c into cl2;
[...]
Source: www.xt-r.com
Сб, Июл 14, 2012
Теперь у нас полная семья - и доча и сын :)
Уррррррррраааааа! :) [...]
Source: www.xt-r.com
Сб, Июн 30, 2012
Проблема эта в общем-то старая, но только сейчас благодаря книге "Oracle Core" Джонатана Льюиса удалось узнать в чем собственно проблема и справиться с ней.
Цитата из главы "Latches for lock":

If the enqueue resource is in place already, then pick a row from the relevant enqueue structure (x$ksqeq, [...]
Source: www.xt-r.com
Ср, Июн 27, 2012
Увидев новые пару строк на 11.2.0.3 в списке хинтов(V$SQL_HINT), решил свести их описания в одну удобную заметку, попутно попытавшись разобраться в них.
Описание до конца еще не закончено, постараюсь сделать это на днях.

Cписок хинтов добавленных в 11g
NAMEINVERSEVERSIONFULL_OUTER_JOIN_TO_OUTERNO_FULL_OUTER_JOIN_TO_OUTER11.2.0.3 OUTER_JOIN_TO_ANTINO_OUTER_JOIN_TO_ANTI11.2.0.3TABLE_LOOKUP_BY_NLNO_TABLE_LOOKUP_BY_NL11.2.0.2USE_HASH_GBY_FOR_PUSHDOWNNO_USE_HASH_GBY_FOR_PUSHDOWN11.2.0.2XDB_FASTPATH_INSERTNO_XDB_FASTPATH_INSERT11.2.0.2APPEND_VALUESNOAPPEND11.2.0.1COALESCE_SQNO_COALESCE_SQ11.2.0.1CONNECT_BY_ELIM_DUPSNO_CONNECT_BY_ELIM_DUPS11.2.0.1[...]
Source: www.xt-r.com
Ср, Июн 13, 2012
В документации к dbms_random сказано: It will automatically initialize with the date, user ID, and process ID if no explicit initialization is performed.Из данной фразы не очевидно, какой "process id" будет использоваться для инициализации в случае параллельного выполнения, поэтому приведу наглядный пример, показывающий независимость генератора dbms_random от "process id" [...]
Source: www.xt-r.com
Пт, Май 18, 2012
Эта заметка посвящена известному факту о низкой производительности обработки исключений.
Да, действительно, обработка исключений достаточно медленна, однако, не стоит сразу же пытаться избегать их везде, где только можно, да еще и любыми способами. Например, часто вижу как их пытаются избегать даже в случаях поиска по первичному ключу c минимальной [...]
Source: www.xt-r.com
Сб, Апр 28, 2012
Многие знают о том, что oracle при необходимости сам создает доменные типы, например, когда используют тип объявленный в пакете(до 11g их можно было увидеть в dba_objects с именем like 'PLSQL%').

Факт 1
Точно так же он поступает и при вызове агрегатной функции collect.
-- Сначала проверим есть ли [...]
Source: www.xt-r.com
Сб, Апр 21, 2012
Начиная с 11.2.0.1 появилась новая строка "buffer sort" в планах с for update.
Пример:
DB11G/XTENDER> explain plan for
2 select *
3 from t_for_update
4 where
5 id=1
6 and dt [...]
Source: www.xt-r.com
Сб, Апр 21, 2012

Давно хотел написать о минусах использования "a member of b" перед обычными старыми вариантами вроде a in (select column_value from table(b)).
Резюме: "member of" в sql не умеет хорошо работать с индексами и использовать его желательно только в pl/sql - в этом случае по производительности практически одинаков с собственной [...]
Source: www.xt-r.com
Ср, Апр 18, 2012

Очередная задачка показалась мне интересной: Oracle очень плохо работает с временными таблицами(gtt - global temporary tables) в параллели.

Вообще у gtt в параллели в 11g куча ограничений, а до этого вообще запрещены:
10.2: Restrictions on Temporary Tables:
Parallel DML and parallel queries are not supported for [...]

Source: www.xt-r.com
Вс, Апр 08, 2012
Используйте PL/Scope для анализа вашего PL/SQL кода

С момента первого релиза PL/SQL, Oracle предоставляет набор представлений позволяющих разработчику получать информацию о PL/SQL объектах. Эти представления помогают нам понимать и анализировать наш код. Oracle Database 11g предоставляет еще более мощный аналитический инструмент - PL/Scope, собирающий информацию обо всех идентификаторах в [...]

Source: www.xt-r.com
Пн, Апр 02, 2012
Анализ сжатия производился на двух таблицах с количеством 12314345 и 9759284 записей и обьемом данных до сжатия 220 и 1080 мегабайт соответственно. Измерение производительности производилось командой select count(1) from table. Сервер базы данных версии 11.1.0.7 на операционной системе AIX.

До сжатия среднее время выполнения запросов составляло 17.69 и 13.9 [...]
Source: atyshenko.blogspot.com
Пн, Мар 26, 2012
Various techniques for querying and manipulating long columns. July 2010 (updated March 2012) [...]
Source: www.oracle-developer.net
Чт, Мар 22, 2012
Сегодня очень удивился заметив, что вызов "username:=user;" и "select user into username from dual;" одинаковы по времени выполнения, в отличие от десятикратной разницы dt:=sysdate и select sysdate into dt from dual;. Оказалось все просто, стоило лишь поглядеть трассировку или поглядеть код пакета sys.standard: PL/SQL-ный USER содержит внутри рекурсивный запрос c [...]
Source: www.xt-r.com
Вт, Мар 13, 2012
Каким же сложным может оказаться для многих решение простейшей задачи: определение наличия подстроки в строке, но в немного нестандартной ситуации.

Задача: выбрать из таблицы строки, в которых поле попадает в список значений, перечисленных в строке в виде набора значений через запятую.

Пример:



SQL> create table [...]
Source: oraclemaniacs.blogspot.ru
Пн, Мар 12, 2012
На днях, в поисках способа оптимизировать долгоиграющую процедуру расчета одной модели наткнулся в очередной раз на сравнение COALESCE против NVL.
Для тех, кто не в курсе, у Oracle есть следующие SQL-функции для обработки значений NULL:
NVL(expr1, expr2) – в случае, если expr1 IS NOT NULL, выводится expr1, в противном случае [...]
Source: oraclemaniacs.blogspot.ru
Вс, Мар 11, 2012
Невероятно, но, проскочила информация о том, что Oracle в версии СУБД 12c введет конструкцию для ограничения выдачи, являющуюся аналогом TOP в MS SQL Server или LIMIT в MySQL:
In Database 12c, to limit the number of rows in a query can be simplified by ANSI fetch first/offset keyword via [...]
Source: oraclemaniacs.blogspot.ru
Комментирование отключено.