powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / ошибка при повышении грубины вложения
11 сообщений из 11, страница 1 из 1
ошибка при повышении грубины вложения
    #39628598
Wisky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Рабочий запрос:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
SELECT 
CASE WHEN ( NOT EXISTS (
SELECT 
	1 AS C1
	FROM 
  dual  Project1 
    where Extent1.dummy= Project1.dummy

)) THEN 1 ELSE 0 END AS C1
FROM dual Extent1  ;
    





Не рабочий запрос:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
SELECT 
CASE WHEN ( NOT EXISTS (
SELECT 
	1 AS C1
	FROM 
   ( SELECT 1
   from dual 
 WHERE (Extent1.dummy = Extent2.dummy)
)      Project1 
   )) THEN 1 ELSE 0 END AS C1
FROM dual Extent1 ; 



SQL Error: ORA-00904: "EXTENT2"."DUMMY": недопустимый идентификатор
00904. 00000 - "%s: invalid identifier"


условие WHERE (Extent1.dummy = Extent2.dummy) критично.
С чем это связано?
...
Рейтинг: 0 / 0
ошибка при повышении грубины вложения
    #39628607
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
STFF inline view не может быть коррелированным
...
Рейтинг: 0 / 0
ошибка при повышении грубины вложения
    #39628609
Wisky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
сорри, опечатался. нерабочий такой
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
SELECT 
CASE WHEN ( NOT EXISTS (
SELECT 
	1 AS C1
	FROM 
   ( SELECT 1
   from dual Extent2
 WHERE (Extent1.dummy = Extent2.dummy)
)      Project1 
   )) THEN 1 ELSE 0 END AS C1
FROM dual Extent1 ; 
...
Рейтинг: 0 / 0
ошибка при повышении грубины вложения
    #39628614
Wisky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
этот запрос формирует Entity Framework, это его бага?
...
Рейтинг: 0 / 0
ошибка при повышении грубины вложения
    #39628679
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wiskyусловие WHERE (Extent1.dummy = Extent2.dummy) критично.
С чем это связано?Это связано с тем, что в определенных версиях Оракла идентификаторы видны только на 1 уровень вглубь.

В Oracle 10.1 сделали неограниченную видимость и это было документировано, но функционал породил огромное число багов.
https://docs.oracle.com/cd/B14117_01/server.101/b10759/queries007.htm Oracle performs a correlated subquery when a nested subquery references a column from a table referred to a parent statement any number of levels above the subquery. В версиях 10.2 - 11.2 включительно видимость ограничили до 1-го уровня и в доке изменили формулировку.
https://docs.oracle.com/cd/E11882_01/server.112/e41084/queries007.htm Oracle performs a correlated subquery when a nested subquery references a column from a table referred to a parent statement one level above the subquery. С версии 12.1 глубину видимости увеличили (она по прежнему не ANY, но и не ONE), а в доке по прежнему осталось
https://docs.oracle.com/en/database/oracle/oracle-database/12.2/sqlrf/Using-Subqueries.html Oracle performs a correlated subquery when a nested subquery references a column from a table referred to a parent statement one level above the subquery.
Подытоживая:
Это ограничение оракловой реализации на определенных версиях.
В MSSQL работает в 2005 и дальше, думаю и в 2000-м все ок.
Entity Framework была спроектирована для работы с MSSQL в первую очередь.
...
Рейтинг: 0 / 0
ошибка при повышении грубины вложения
    #39628681
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ElicSTFF inline view не может быть коррелированнымОграничение на коррелированность inline view перпендикулярно к ограничению на уровень вложенности correlated scalar subquery.

А вообще удивляет что ты из раза в раз повторяшь свою мантру.
Не смотря на то, что 12c вышла 5 лет назад сделав невозможное возможным.
...
Рейтинг: 0 / 0
ошибка при повышении грубины вложения
    #39628691
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbms_photoshopОграничение на коррелированность inline view перпендикулярно к ограничению на уровень вложенности correlated scalar subquery.Ты споришь с тем, чего я не говорил.
dbms_photoshopА вообще удивляет что ты из раза в раз повторяшь свою мантру.
Не смотря на то, что 12c вышла 5 лет назад сделав невозможное возможным.Если бы ты сделал STFF, то в более свежих рядом с "мантрой" ты бы увидел и то самое слово. Без которого "мантра" всё ещё остаётся истинной.
...
Рейтинг: 0 / 0
ошибка при повышении грубины вложения
    #39628695
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbms_photoshopОграничение на коррелированность inline view перпендикулярно к ограничению на уровень вложенности correlated scalar subquery.Возможно то, что ты у тебя смешались inline view и nested subquery, является следствием твоей "могостаночности"/"перебеглости".
...
Рейтинг: 0 / 0
ошибка при повышении грубины вложения
    #39628696
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Elicты бы увидел и то самое слово. Без которого "мантра" всё ещё остаётся истинной.Я заинтригован.
Мантра остаётся истинной без слова "не", но полагаю ты не об этом. :)
Код: plaintext
inline view не может быть коррелированным
...
Рейтинг: 0 / 0
ошибка при повышении грубины вложения
    #39628736
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Elicdbms_photoshopОграничение на коррелированность inline view перпендикулярно к ограничению на уровень вложенности correlated scalar subquery.Возможно то, что ты у тебя смешались inline view и nested subquery, является следствием твоей "могостаночности"/"перебеглости".inline view и nested subquery у меня вроде не смешивались.
Подзапрос переходя в кляузу from может называться в том числе inline view.
Некоторую двусмысленность вносит понятие "уровня вложенности".

Признаю, что твой первый ответ в теме вполне можно считать релевантным.

Тест на 11g
Код: plaintext
alter session set events '22829 trace name context forever';

Ограничение inline view + correlation
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
SQL> select (select *
  2            from (select l1.dummy from dual))
  3            x
  4    from dual l1;
          from (select l1.dummy from dual))
                       *
ERROR at line 2:
ORA-00904: "L1"."DUMMY": invalid identifier


SQL> select (select *
  2            from lateral (select l1.dummy from dual))
  3            x
  4    from dual l1;

X
-
X



Ограничение correlated subquery + nesting level
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
SQL> select *
  2    from lateral (select (select l1.dummy from dual) x from dual l1),
  3         dual l2;

X D
- -
X X

SQL> select *
  2    from lateral (select (select l1.dummy || l2.dummy from dual) x from dual l1),
  3         dual l2;
  from lateral (select (select l1.dummy || l2.dummy from dual) x from dual l1),
                                           *
ERROR at line 2:
ORA-00904: "L2"."DUMMY": invalid identifier



Ну это с одной стороны.
А с другой стороны
1) Вложенность в скаляре уровня 2. При уровне 1 работает.
2) Подзапрос превращается в correlated inline view глубины 2. До этого он вообще не коррелированный.

Что первично? Вопрос риторический.
...
Рейтинг: 0 / 0
ошибка при повышении грубины вложения
    #39628738
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) и 2) должны были быть пронумерованы куски кода.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / ошибка при повышении грубины вложения
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]