[img]http://dl2.iteye.com/upload/attachment/0094/0197/219d7536-01cb-3617-8b6b-9454ad67bf83.jpg[/img]
在一个应用系统,提供了运行 ORQCLE SQL 的功能。对于简单的 SQL 语句的运行一切正常,而对于有子查询的复杂 SQL 语句,经常会出现错误。但是,这个语句在 DQL PLUS 中运行完全没有问题。
比如:ORA-00907: 缺少右括号。
开始,完全不得要领,最后发现,是子查询中一定要有一个 where 子句。
select id, xm from ry a,
(select id, sum(gz) from gz) b
where a.id = b.id
就要在子查询中加上一个 where 子句,只要是肯定为真的条件都可以。写成:
select id, xm from ry a,
(select id, sum(gz) from gz where id > 0) b
where a.id = b.id
在一个应用系统,提供了运行 ORQCLE SQL 的功能。对于简单的 SQL 语句的运行一切正常,而对于有子查询的复杂 SQL 语句,经常会出现错误。但是,这个语句在 DQL PLUS 中运行完全没有问题。
比如:ORA-00907: 缺少右括号。
开始,完全不得要领,最后发现,是子查询中一定要有一个 where 子句。
select id, xm from ry a,
(select id, sum(gz) from gz) b
where a.id = b.id
就要在子查询中加上一个 where 子句,只要是肯定为真的条件都可以。写成:
select id, xm from ry a,
(select id, sum(gz) from gz where id > 0) b
where a.id = b.id
本文探讨了在特定应用系统中执行复杂Oracle SQL语句时出现的ORA-00907错误,并提供了解决方案。指出在子查询中加入任意为真的WHERE条件可以避免此类错误。
3776

被折叠的 条评论
为什么被折叠?



