Просторы интернета
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Изменения относительно версии 1.1.4
Поддержка нескольких соединений с базой данных.
Утилита командной строки.
Изменение структуры файла конфигурации.
А также:
Moved storage of RESTful Services (aka Resource Templates) to the Oracle Application Express Schema
Design and creation [...]
Вс, Авг 12, 2012
Добавлена статья Полезные системные представления Oracle [...]
Source: www.orahome.ruСб, Авг 11, 2012
Christian Antognini опубликовал полный список уровней для 10046-й трассы.
Утащу к себе, пока не запомню :) Repost: Christian Antognini. "Event 10046 – Full List of Levels"
Source: www.xt-r.comУтащу к себе, пока не запомню :) 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 [...]
Сб, Авг 11, 2012Source: www.xt-r.com
Все, конечно, знают про unwrapper'ы и многие даже пробовали свой написать (и я в том числе, после после презентации Pete Finnigan'а :), но тем не менее забавно, что Oracle в документации к 11.2 прямо-таки "громогласно" заявляет о том, что ничего unwrap от просмотра не защищает, но еще и прямую ссылку [...]
Чт, Авг 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
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 [...]
Чт, Авг 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
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 [...]
Чт, Авг 09, 2012
Интересная тема с возможными решениями двух стандартных задач:
1) sprintf в oracle в SQL
2) замена по регулярке с вычисляемой заменяемой частью(а ля модификатор "e" в perl) [...]
Source: www.xt-r.com1) sprintf в oracle в SQL
2) замена по регулярке с вычисляемой заменяемой частью(а ля модификатор "e" в perl) [...]
Чт, Авг 09, 2012
Добавлена статья Listener не запускается: TNS-12555: TNS: permission denied [...]
Source: www.orahome.ruВт, Июл 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.comcreate 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
[...]
Сб, Июл 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.comcreate 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;
[...]
Сб, Июл 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Цитата из главы "Latches for lock":
If the enqueue resource is in place already, then pick a row from the relevant enqueue structure (x$ksqeq, [...]
Ср, Июн 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Описание до конца еще не закончено, постараюсь сделать это на днях.
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[...]
Пн, Июн 18, 2012Source: 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Да, действительно, обработка исключений достаточно медленна, однако, не стоит сразу же пытаться избегать их везде, где только можно, да еще и любыми способами. Например, часто вижу как их пытаются избегать даже в случаях поиска по первичному ключу c минимальной [...]
Сб, Апр 28, 2012
Многие знают о том, что oracle при необходимости сам создает доменные типы, например, когда используют тип объявленный в пакете(до 11g их можно было увидеть в dba_objects с именем like 'PLSQL%').
Факт 1
Точно так же он поступает и при вызове агрегатной функции collect.
-- Сначала проверим есть ли [...]
Source: www.xt-r.comФакт 1
Точно так же он поступает и при вызове агрегатной функции collect.
-- Сначала проверим есть ли [...]
Сб, Апр 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Пример:
DB11G/XTENDER> explain plan for
2 select *
3 from t_for_update
4 where
5 id=1
6 and dt [...]
Сб, Апр 21, 2012
Давно хотел написать о минусах использования "a member of b" перед обычными старыми вариантами вроде a in (select column_value from table(b)).
Резюме: "member of" в sql не умеет хорошо работать с индексами и использовать его желательно только в pl/sql - в этом случае по производительности практически одинаков с собственной [...]Source: www.xt-r.com
Давно хотел написать о минусах использования "a member of b" перед обычными старыми вариантами вроде a in (select column_value from table(b)).
Резюме: "member of" в sql не умеет хорошо работать с индексами и использовать его желательно только в pl/sql - в этом случае по производительности практически одинаков с собственной [...]
Ср, Апр 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
Очередная задачка показалась мне интересной: Oracle очень плохо работает с временными таблицами(gtt - global temporary tables) в параллели.
Вообще у gtt в параллели в 11g куча ограничений, а до этого вообще запрещены:
10.2: Restrictions on Temporary Tables:
Parallel DML and parallel queries are not supported for [...]
Вс, Апр 08, 2012
Используйте PL/Scope для анализа вашего PL/SQL кода
С момента первого релиза PL/SQL, Oracle предоставляет набор представлений позволяющих разработчику получать информацию о PL/SQL объектах. Эти представления помогают нам понимать и анализировать наш код. Oracle Database 11g предоставляет еще более мощный аналитический инструмент - PL/Scope, собирающий информацию обо всех идентификаторах в [...]
Source: www.xt-r.comС момента первого релиза PL/SQL, Oracle предоставляет набор представлений позволяющих разработчику получать информацию о PL/SQL объектах. Эти представления помогают нам понимать и анализировать наш код. Oracle Database 11g предоставляет еще более мощный аналитический инструмент - PL/Scope, собирающий информацию обо всех идентификаторах в [...]
Пн, Апр 02, 2012
Анализ сжатия производился на двух таблицах с количеством 12314345 и 9759284 записей и обьемом данных до сжатия 220 и 1080 мегабайт соответственно. Измерение производительности производилось командой select count(1) from table. Сервер базы данных версии 11.1.0.7 на операционной системе AIX.
До сжатия среднее время выполнения запросов составляло 17.69 и 13.9 [...]
Source: atyshenko.blogspot.comДо сжатия среднее время выполнения запросов составляло 17.69 и 13.9 [...]
Пн, Мар 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Задача: выбрать из таблицы строки, в которых поле попадает в список значений, перечисленных в строке в виде набора значений через запятую.
Пример:
SQL> create table [...]
Пн, Мар 12, 2012
На днях, в поисках способа оптимизировать долгоиграющую процедуру расчета одной модели наткнулся в очередной раз на сравнение COALESCE против NVL.
Для тех, кто не в курсе, у Oracle есть следующие SQL-функции для обработки значений NULL:
NVL(expr1, expr2) – в случае, если expr1 IS NOT NULL, выводится expr1, в противном случае [...]
Source: oraclemaniacs.blogspot.ruДля тех, кто не в курсе, у Oracle есть следующие SQL-функции для обработки значений NULL:
NVL(expr1, expr2) – в случае, если expr1 IS NOT NULL, выводится expr1, в противном случае [...]
Вс, Мар 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.ruIn Database 12c, to limit the number of rows in a query can be simplified by ANSI fetch first/offset keyword via [...]