0

我们看到以下 SQL 的错误消息 ORA-00936 Missing Expression:

请注意,这只是一个更大的 SQL 的缩减版本,因此将其重写为内部连接或类似的实际上不在此范围内:

这是失败的 SQL:

select (select count(*) from gt_roster where ROS_ROSTERPLAN_ID = RPL_ID)
from gt_rosterplan
where RPL_ID = 432065061

我已经尝试过: * 提取最里面的 SQL 并从外部 SQL 中替换 ID 给我数字 12。结果(即仍然是错误)

我还需要看什么?

上面只是表,没有视图,RPL_ID是gt_rosterplan的主键,ROS_ROSTERPLAN_ID是这个列的外键,这里基本没有什么神奇或隐藏信息。


编辑:作为回答,不,您不需要此处的别名,因为列在表中是唯一命名的。


已解决:问题是客户端运行了错误的客户端驱动程序版本 9.2.0.1,并且该版本存在已知问题。

4

2 回答 2

3

问题是客户端运行了错误的客户端驱动程序版本 9.2.0.1,并且该版本存在已知问题。

于 2009-01-27T09:04:23.283 回答
1

这应该可行,假设列名不模棱两可(即使它们会导致不同的错误)。我运行了一个等效的语句并得到了没有错误的结果:

SQL> select (select count(*) from emp2 where empdeptno = deptno)
  2  from dept
  3  where deptno=10
  4  /

(SELECTCOUNT(*)FROMEMP2WHEREEMPDEPTNO=DEPTNO)
---------------------------------------------
                                            3

谷歌搜索似乎存在或已经存在导致 ORA-00936 错误的 Oracle 错误 -例如,请参阅this

于 2008-10-30T11:49:03.950 回答