Зависимые предложения WITH в Oracle Reports - PullRequest
1 голос
/ 06 сентября 2011

Почему построитель отчетов Oracle (подключенный к базе данных 11g) не допускает следующий допустимый SQL?

with abc as 
(Select 1 as x from dual),
def as
(Select 2 as y from abc)
select x,y from abc,def

Я получаю ORA-00942: table or view does not exist (Select 2 as y from ==>abc) для вышеупомянутого. Когда я выполняю приведенный выше SQL из SQL Developer, подключенного к той же базе данных 11g, он запускается без проблем. Следующие независимые предложения WITH принимаются конструктором отчетов, однако,

with abc as 
(Select 1 as x from dual),
def as
(Select 2 as y from dual)
select x,y from abc,def

Есть ли способ сделать это в построителе отчетов, или мне просто нужно добавить первое предложение WITH во второе предложение FROM? Заранее спасибо.

PS: версия построителя отчетов 10.1.2.0.2

Ответы [ 2 ]

3 голосов
/ 06 сентября 2011

Существует способ обхода проблем предложения WITH, опубликованных на форумах Oracle здесь: https://forums.oracle.com/forums/thread.jspa?threadID=710036

, которые вы можете реализовать, чтобы обойти вашу проблему.

В качестве альтернативы, вы не могли бы простотекущие запросы WITH внутри встроенных представлений в вашем запросе?

РЕДАКТИРОВАТЬ: Как это (используя ваш код).

SELECT x, y
  FROM 
       (SELECT 1 AS x
          FROM dual) abc,
       (SELECT 2 AS y
          FROM dual) def
0 голосов
/ 05 мая 2014

У меня была такая же проблема, и вот как я ее преодолел: Там, где вы используете встроенный псевдоним, явно присоедините его (внутренний, внешний ...) к другой таблице. Пример:

with MyTabA as(
    select 1 theID, 'AA'
    thetext from dual
),
MytabB as(
    select 1 theID, '123 street Paul'
    theaddress from dual union select 2 theID, '123 street Paul'
    theaddress from dual union select 3 theID, '123 street Paul'
    theaddress from dual
)
Select MytabA.theid, mytaba.thetext, mytabb.theaddress
from MyTabA, MyTabB
Where MyTabA.theID = MyTabB.theid
;
...