Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Oracle 10.2.0.2.0, 64bit, Solaris: прикол деревянный...  [new]
Деев И.
Member

Откуда: отсюда
Сообщений: 783
Столкнулся с забавной багой. Предельно упрощенный пример:

create table kill_test_tree(i1 number, i2 number, j number);
insert into kill_test_tree values(-1, null, null);
insert into kill_test_tree values(1, -1, 1);
insert into kill_test_tree values(2, 1, 1);
insert into kill_test_tree values(3, 1, 1);
insert into kill_test_tree values(4, 2, 1);
select * from kill_test_tree;

select i1, level
    from kill_test_tree t
     where t.j = 2
  connect by prior t.i1 = t.i2 and t.j = 2
   start with i1 = -1; -- все ок!
         
select * from 
    (select i1, level
      from kill_test_tree t
       where t.j = 2
    connect by prior t.i1 = t.i2 and t.j = 2
     start with i1 = -1); -- все ок!
         
select * from  
	(select * from 
		    (select i1, level
		      from kill_test_tree t
                              where t.j = 2
		    connect by prior t.i1 = t.i2 and t.j = 2
		     start with i1 = -1
                    )
           );  -- а здесь не ок :-(
17 авг 06, 21:36    [3019820]     Ответить | Цитировать Сообщить модератору
 Re: Oracle 10.2.0.2.0, 64bit, Solaris: прикол деревянный...  [new]
CAHbKA
Member

Откуда:
Сообщений: 171
10.2.0.2/Win32 - аналогично (видимо)
linux/x86 10.1.0.4, 10.2.0.2 - нет
17 авг 06, 21:55    [3019856]     Ответить | Цитировать Сообщить модератору
 Re: Oracle 10.2.0.2.0, 64bit, Solaris: прикол деревянный...  [new]
VicZai
Member

Откуда:
Сообщений: 613
Мало того попробуйте в качестве подзапроса использовать деревянный запрос. Нет оракля под рукой. Попробую на память

select * from
(select * from t where t.idt IN (здесь деревянный запрос)) a,
(select * from d where d.idd IN (здесь деревянный запрос)) b
where a.id=b.id
Так вот в таком виде не пашет, а если второй подзапрос заменить на обычный (не деревянный) то все пашет
17 авг 06, 22:38    [3019948]     Ответить | Цитировать Сообщить модератору
 Re: Oracle 10.2.0.2.0, 64bit, Solaris: прикол деревянный...  [new]
CAHbKA
Member

Откуда:
Сообщений: 171
перечитал про "здесь деревянный запрос" и разделил мнение (со старожилами), что работает R2 сносно весьма. эээ... ведь там нет как нет тесткейса ? (:
17 авг 06, 23:02    [3019983]     Ответить | Цитировать Сообщить модератору
 Re: Oracle 10.2.0.2.0, 64bit, Solaris: прикол деревянный...  [new]
Деев И.
Member

Откуда: отсюда
Сообщений: 783
Техподдержка рекомендует такие способы лечения:
1) Хинт /*+ NO_CONNECT_BY_COST_BASED */ в иерархическом запросе.
или
2) alter session set "_optimizer_connect_by_cost_based" = false;
27 ноя 06, 18:00    [3457676]     Ответить | Цитировать Сообщить модератору
 Re: Oracle 10.2.0.2.0, 64bit, Solaris: прикол деревянный...  [new]
Деев И.
Member

Откуда: отсюда
Сообщений: 783
При применении 10.2.0.3.0 ошибка пропала.
13 мар 07, 21:41    [3894726]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить