为什么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
答案 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
;