Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 unreferenced query name defined in WITH clause  [new]
TQuestions
Member

Откуда:
Сообщений: 115
Добрый день!
Подскажите, я ошибся с конструкцией with или так не возможно сделать.

Хочу использовать в selecte два подзапроса.

Примерно так:
with tree as
(select 1 id from dual ),
tree2 as
(select 2 id from dual)
select t1.*
from table1 t1,tree,tree2
where t1.id in (tree.id,tree2.id)

но получаю "unreferenced query name defined in WITH clause"

Что не так?

Спасибо!
8 сен 08, 16:07    [6159510]     Ответить | Цитировать Сообщить модератору
 Re: unreferenced query name defined in WITH clause  [new]
Jannny
Member

Откуда: Спб
Сообщений: 6424
Либо Вы приводите подредактированный пример (то бишь не содержащий ошибку), либо Вы наступили на баг. Версия?
8 сен 08, 16:23    [6159679]     Ответить | Цитировать Сообщить модератору
 Re: unreferenced query name defined in WITH clause  [new]
SQL*Plus
Member

Откуда: Россия, Москва
Сообщений: 8134
TQuestions
Добрый день!
Подскажите, я ошибся с конструкцией with или так не возможно сделать.

Хочу использовать в selecte два подзапроса.

Примерно так:
with tree as
(select 1 id from dual ),
tree2 as
(select 2 id from dual)
select t1.* 
 from table1 t1,tree,tree2
where t1.id in (tree.id,tree2.id)
но получаю "unreferenced query name defined in WITH clause"

Что не так?

Спасибо!


1. При оформлении кода используйте, пожалуйста, тег SRC данного форума.
Этим вы повысите свои шансы на получение ответа.

2. Приводите, пожалуйста расшифровку ошибки,
которую дает документация!

Примерно так:
ORA-32035: unreferenced query name defined in WITH clause
Cause: There is at least one WITH clause query name that is not referenced in any place.
Action: remove the unreferenced query name and retry

Этим вы
- Покажете, что документацию вы смотрели.
- Сэкономите время другим на поиск описания ошибки.
- Ускорите ответ на свой вопрос.

3. На 9.2.0.8 и 10.2.0.3 аналогичный запрос работает...
with tree as (select 7369 id from dual)
   , tree2 as (select 7839 id from dual)
select t1.* from emp t1, tree, tree2
where t1.empno in (tree.id, tree2.id)
На какой версии Oracle Database вы пытаетесь выполнить запрос?
Или вы приводите не тот запрос, который дает вам ошибку?
8 сен 08, 16:24    [6159685]     Ответить | Цитировать Сообщить модератору
 Re: unreferenced query name defined in WITH clause  [new]
TQuestions
Member

Откуда:
Сообщений: 115
Jannny
Либо Вы приводите подредактированный пример (то бишь не содержащий ошибку), либо Вы наступили на баг. Версия?


Oracle 9

Я так понимаю что если в with используется более 1 подзапроса, то в select можно использовать только те подзапросы.
или нет?
8 сен 08, 16:29    [6159723]     Ответить | Цитировать Сообщить модератору
 Re: unreferenced query name defined in WITH clause  [new]
Jannny
Member

Откуда: Спб
Сообщений: 6424
TQuestions
Jannny
Либо Вы приводите подредактированный пример (то бишь не содержащий ошибку), либо Вы наступили на баг. Версия?

Oracle 9
Точнее.

TQuestions
Я так понимаю что если в with используется более 1 подзапроса, то в select можно использовать только те подзапросы.
или нет?
Непонятен, если честно Ваш вопрос. Ваша ошибка говорит о том, что Вы не используете один из запросов, описанных в WITH, в основном запросе(ну или в нижележащем запросе в WITH).
Запросы, описанные в with, можно использовать наравне с другими таблицами (и др.)
8 сен 08, 16:36    [6159786]     Ответить | Цитировать Сообщить модератору
 Re: unreferenced query name defined in WITH clause  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
TQuestions
Добрый день!
Подскажите..

ещё уточните, что именно вы хотите.
в смысле, конструевина
in (tree.id,tree2.id)
не то, чтобы криминал - но, подозрительна ;)
8 сен 08, 16:49    [6159865]     Ответить | Цитировать Сообщить модератору
 Re: unreferenced query name defined in WITH clause  [new]
TQuestions
Member

Откуда:
Сообщений: 115
SQL*Plus, Jannny : Я не знаю как точно определить версию Oracle Database. Буду признателен если подскажите как это можно посмотреть.
Да запрос у меня был другой.
Jannny : спасибо, действительно я не использовал второй подзапрос. У меня был union и в первой части union использовался один подзапрос, а в другой части union использовался второй подзапрос. Но так как запрос выводил много строк я их отлаживал по отдельности.
SQL*Plus: спасибо за тэг. Как получить расшифровку ошибки?
8 сен 08, 17:11    [6160067]     Ответить | Цитировать Сообщить модератору
 Re: unreferenced query name defined in WITH clause  [new]
Jannny
Member

Откуда: Спб
Сообщений: 6424
TQuestions
Я не знаю как точно определить версию Oracle Database. Буду признателен если подскажите как это можно посмотреть.
select * from v$version
TQuestions
Как получить расшифровку ошибки?
тынц
8 сен 08, 17:20    [6160127]     Ответить | Цитировать Сообщить модератору
 Re: unreferenced query name defined in WITH clause  [new]
SY
Member

Откуда: Middlebury, CT USA
Сообщений: 10051
TQuestions
Я так понимаю что если в with используется более 1 подзапроса, то в select можно использовать только те подзапросы.
или нет?


No, this error means WITH clause has a named query that is NOT referenced in main select. In your case:

SQL> with t1 as (select 1 x from dual),
  2       t2 as (select 1 x from dual) -- not referenced in main select
  3  select * from t1
  4  /
select * from t1
              *
ERROR at line 3:
ORA-32035: unreferenced query name defined in WITH clause


SQL> with t1 as (select 1 x from dual),
  2       t2 as (select 1 x from dual) -- is referenced in main select
  3  select * from t1,t2
  4  /

         X          X
---------- ----------
         1          1

SQL> 

SY.

Сообщение было отредактировано: 8 сен 08, 19:57
8 сен 08, 19:56    [6160745]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: unreferenced query name defined in WITH clause  [new]
Глупый Телевизор
Member

Откуда: телевизор больше не смотреть (с)
Сообщений: 679
А в 11.2 такое документировано?
10.2
with
t1 as (select * from dual),
t2 as (select * from t1)
select * from t1;
select * from t1
              *
ERROR at line 4:
ORA-32035: unreferenced query name defined in WITH clause
11.2
with
t1 as (select * from dual),
t2 as (select * from t1)
select * from t1;

D
-
X
26 ноя 11, 17:02    [11664211]     Ответить | Цитировать Сообщить модератору
 Re: unreferenced query name defined in WITH clause  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
Глупый Телевизор
А в 11.2 такое документировано?
..

имхо, особо нечего тут документировать.. (баг, как баг. :)
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> with
  2  t1 as (select * from dual),
  3  t2 as (select * from dual union all select * from dual)
  4  select * from t1;

D
-
X

SQL> with
  2  t1 as (select * from dual),
  3  t2 as (select * from obj)
  4  select * from t1;
select * from t1
              *
ERROR at line 4:
ORA-01762: vopdrv: view query block not in FROM 
27 ноя 11, 11:38    [11666164]     Ответить | Цитировать Сообщить модератору
 Re: unreferenced query name defined in WITH clause  [new]
andreymx
Member

Откуда: Запорожье
Сообщений: 54396
а что такое ORA-01762: vopdrv?
27 ноя 11, 12:31    [11666261]     Ответить | Цитировать Сообщить модератору
 Re: unreferenced query name defined in WITH clause  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18486
Это ласковое индусское прозвище, по-русски переводится как "долбоеб"
toy.oracle> oerr ora 1762
01762, 00000, "vopdrv: view query block not in FROM"
// *Cause:
// *Action:
toy.oracle>
28 ноя 11, 02:52    [11668573]     Ответить | Цитировать Сообщить модератору
 Re: unreferenced query name defined in WITH clause  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
andreymx
а что такое ORA-01762: vopdrv?

поверхностный взгляд в гугл говорит, что по поводу тайного смысла этого словца внятных версий не видать
(лишь ржач в варежку про узерфрендливость оракловых сообщений, вообще)
ну и видно, что тот мусор присутствует (как минимум) на 9i-11g
28 ноя 11, 16:46    [11672719]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: unreferenced query name defined in WITH clause  [new]
--Eugene--
Member

Откуда: Боярышник
Сообщений: 2170
Товарищи,

с тех пор случайно не узнал ли кто-нибудь что значит ошибка
ORA-01762: vopdrv: view query block not in FROM
и как ее лечить?
1 апр 16, 19:06    [19006617]     Ответить | Цитировать Сообщить модератору
 Re: unreferenced query name defined in WITH clause  [new]
--Eugene--
Member

Откуда: Боярышник
Сообщений: 2170
Нашел что-то более-менее вразумительное о сути ошибки, но СКАКОГО ПЕРЕПУГУ она берется - непонятно.
Еще один забавный баг, теперь с with...
1 апр 16, 19:15    [19006648]     Ответить | Цитировать Сообщить модератору
 Re: unreferenced query name defined in WITH clause  [new]
эхнетендер
Guest
--Eugene--
Нашел что-то более-менее вразумительное о сути ошибки, но СКАКОГО ПЕРЕПУГУ она берется - непонятно.
Еще один забавный баг, теперь с with...
произнеси три раза: xtender появись... может он что дополнительное расскажет.
1 апр 16, 20:36    [19006932]     Ответить | Цитировать Сообщить модератору
 Re: unreferenced query name defined in WITH clause  [new]
xtender
Member

Откуда: Мск
Сообщений: 5704
эхнетендер
произнеси три раза: xtender появись... может он что дополнительное расскажет.


--Eugene--,
дак, а что не понятно? вроде же ясно написал: происходит при попытке какой-либо трансформации неиспользуемого запроса из with.
Как лечить тоже понятно - просто не пиши в with то, что не собираешься использовать...
1 апр 16, 22:01    [19007303]     Ответить | Цитировать Сообщить модератору
 Re: unreferenced query name defined in WITH clause  [new]
--Eugene--
Member

Откуда: Боярышник
Сообщений: 2170
xtender,

Да, это само собой.
Только вот если девелопят одни люди (и у них на стенде всё работает ок), а deliverят - другие люди (у которых вот такие ошибки).
1 апр 16, 22:58    [19007597]     Ответить | Цитировать Сообщить модератору
 Re: unreferenced query name defined in WITH clause  [new]
xtender
Member

Откуда: Мск
Сообщений: 5704
--Eugene--,

Да какая разница, просто пусть убирают лишнее из запроса. Можно, конечно, попробовать отключить трансформацию, но не вижу смысла бороться с симптомами...
1 апр 16, 23:47    [19007691]     Ответить | Цитировать Сообщить модератору
 Re: unreferenced query name defined in WITH clause  [new]
--Eugene--
Member

Откуда: Боярышник
Сообщений: 2170
xtender,

в код изменения внести не удастся (по крайней мере, не так скоро), поскольку сборка прошла QA, где этой проблемы не было обнаружено.
похоже, придется синхронизировать версию оракла с ихним стендом.
2 апр 16, 00:58    [19007871]     Ответить | Цитировать Сообщить модератору
 Re: unreferenced query name defined in WITH clause  [new]
orawish
Member

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

в код изменения внести не удастся (по крайней мере, не так скоро), поскольку сборка прошла QA, где этой проблемы не было обнаружено.
похоже, придется синхронизировать версию оракла с ихним стендом.

а то..
что лень - это понятно, но ежели всерьёз - иначе нельзя
2 апр 16, 16:25    [19008896]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить