Oracle Reports中的依赖WITH子句

时间:2011-09-06 10:09:43

标签: oracle oracle11g report

为什么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) 对于上述。 当我从连接到同一个11g数据库的SQL Developer执行上述SQL时,它运行没有任何问题。 但是,报告构建器接受以下独立的WITH子句,

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

有没有办法在报表生成器中执行此操作,还是只需要在第二个FROM子句中填写第一个WITH子句?提前谢谢。

PS:Report Builder版本为10.1.2.0.2

2 个答案:

答案 0 :(得分:3)

在Oracle论坛上发布的WITH子句问题有一个解决方法: 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

答案 1 :(得分:0)

我遇到了同样的问题,这就是我克服它的方式: 在使用内联别名的位置,将其(内部,外部...)显式连接到另一个表。例如:

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
;