Oracle Reports 中的从属 WITH 子句
Posted
技术标签:
【中文标题】Oracle Reports 中的从属 WITH 子句【英文标题】:Dependent WITH clauses in Oracle Reports 【发布时间】:2011-09-06 10:09:43 【问题描述】:为什么 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:报表生成器版本为 10.1.2.0.2
【问题讨论】:
您使用哪个版本的 Oracle Reports Builder 编写报告? @Ollie:请看我修改后的问题。 【参考方案1】:这里的 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
【讨论】:
我没有得到你。您能否举一个在内联视图中使用它的示例? Nvm,我明白了。内联视图 -> 在另一个 SELECT 的 FROM 子句中使用 SELECT。我不想这样做的原因是,实际查询很大,在 FROM 子句中使用它非常影响可读性。 @Digdug,感谢您希望提高查询的可读性,但第一步是让它工作。也许您可以将最复杂的查询放入 WITH 子句并内联不太复杂的查询?不是很好,但它会工作。 ,你是对的。我可能只是将它用作内联视图。感谢您的宝贵时间。【参考方案2】:我也遇到过同样的问题,这就是我克服它的方法: 在您使用内联别名的地方,将其(内部、外部...)显式连接到另一个表。示例:
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
;
【讨论】:
以上是关于Oracle Reports 中的从属 WITH 子句的主要内容,如果未能解决你的问题,请参考以下文章
570. Managers with at Least 5 Direct Reports
[Webpack 2] Ensure all source files are included in test coverage reports with Webpack
Find Current Job Openings For Oracle Forms & Reports
Crystal Reports 未使用 Oracle 驱动程序从某些 Oracle 视图返回数据