Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Проблема: - <Left join>, и <start with field is null> - в одном запросе.  [new]
Alexander Mamchur
Member

Откуда:
Сообщений: 5
Уважаемые форумчане. Имею проблему, смахивающую на глюк ORACL-а.

После создания новой базы, обнаружилось, что запрос, на прежней базе возвращавший записи, перестал возвращать что либо из такой же таблицы.

Запрос:
SELECT t1.ID, t1.PARENT_ID, level
FROM BS.ENTITYTYPE t1, BS.ENTITYTYPE t2
WHERE (t2.ID(+)=t1.PARENT_ID)
start with t1.PARENT_ID is null connect by prior t1.ID = t1.PARENT_ID;

Причем, в варианте с ANSI-шным синтаксисом, записи возвращает!:

SELECT t1.ID, t1.PARENT_ID, level
FROM BS.ENTITYTYPE t1
left join BS.ENTITYTYPE t2 on t2.ID=t1.PARENT_ID
start with t1.PARENT_ID is null connect by prior t1.ID = t1.PARENT_ID;

Также возвращает адекватно записи, если оставить или только t2.ID(+)=t1.PARENT_ID, или Connect by...:

SELECT t1.ID, t1.PARENT_ID, level
FROM BS.ENTITYTYPE t1
start with t1.PARENT_ID is null connect by prior t1.ID = t1.PARENT_ID;

или:

SELECT t1.ID, t1.PARENT_ID
FROM BS.ENTITYTYPE t1, BS.ENTITYTYPE t2
WHERE (t2.ID(+)=t1.PARENT_ID);
- все ОК.
Т.е. понятно, что зацепка где-то в записях с PARENT_ID null (кстати, еще: - если start with - не по null - то записи возвращаются!). Но формально-то все должно работать! И на исходной базе – работает.

Кто-нибудь может объяснить данный феномен?
Или что-то "не по глазам"?
Или оно уже есть глюк?
29 авг 11, 11:51    [11193982]     Ответить | Цитировать Сообщить модератору
 Re: Проблема: - <Left join>, и <start with field is null> - в одном запросе.  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
Alexander Mamchur,

обсуждать баги оракла имеет смысл только тогда, когда точно указана версия сервера.
тут работает / там не работает - сравните планы запросов
а, вообще, баян. явно выполните соединение (материализация в помощь) и лишь затем стройте дерево
29 авг 11, 11:57    [11194025]     Ответить | Цитировать Сообщить модератору
 Re: Проблема: - <Left join>, и <start with field is null> - в одном запросе.  [new]
Alexander Mamchur
Member

Откуда:
Сообщений: 5
Да, конечно извиняюсь, ORACLE 10g2 SE.

И да, планы запроса отличаются.

Но, SQL есть SQL - данные одни, запрос один, результат - разный - не должно так быть, однако.
29 авг 11, 12:49    [11194391]     Ответить | Цитировать Сообщить модератору
 Re: Проблема: - <Left join>, и <start with field is null> - в одном запросе.  [new]
Vint
Member

Откуда: Москва
Сообщений: 4564
Alexander Mamchur у вас 10.2SE < 10.2.0.4?
29 авг 11, 16:05    [11195969]     Ответить | Цитировать Сообщить модератору
 Re: Проблема: - <Left join>, и <start with field is null> - в одном запросе.  [new]
Alexander Mamchur
Member

Откуда:
Сообщений: 5
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit
29 авг 11, 16:11    [11196019]     Ответить | Цитировать Сообщить модератору
 Re: Проблема: - <Left join>, и <start with field is null> - в одном запросе.  [new]
Alexander Mamchur
Member

Откуда:
Сообщений: 5
Да, Enterprise оказывается у нас стоит (как партнер и разработчик на платформе - легально для разработки).
29 авг 11, 16:15    [11196053]     Ответить | Цитировать Сообщить модератору
 Re: Проблема: - <Left join>, и <start with field is null> - в одном запросе.  [new]
Alexander Mamchur
Member

Откуда:
Сообщений: 5
Vint
Alexander Mamchur у вас 10.2SE < 10.2.0.4?


Так, уважаемый, по Вашему вопросу попавшему в точку, можно судить что это известная проблема?
29 авг 11, 20:53    [11197695]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить