2012-07-19 101 views
0

我有一个奇怪的Oracle查询问题。麻烦的是我真的是一名MS SQL开发人员。Oracle 10.2.0.5 - SQL命令未正确结束

它是SQL的一个公平块,但是当它只能到此为止:

WHERE  RLTEST.D550M.PERSON_REF = '00027280'; 

一切工作正常。

若在该结束:

WHERE  RLTEST.D550M.PERSON_REF = '00027280' 
AND  RLTEST.D580M.PROJECTED_END_DATE <= SYSDATE(); 

我得到ORA-00933: SQL command not properly ended

,当它在此结束:

WHERE  RLTEST.D550M.PERSON_REF = '00027280' 
AND  NVL(RLTEST.D580M.PROJECTED_END_DATE, SYSDATE()-1) <= SYSDATE(); 

我得到ORA-00907: missing right parenthesis

我需要做什么来是否添加日期比较?

谢谢...

回答

2

你不需要额外的括号 - 从仅仅SYSDATE后的 “()” 中删除。

+0

太棒了 - 谢谢! – CompanyDroneFromSector7G 2012-07-19 14:06:29

1

Oracle有一个伪列的概念,sysdate就是其中之一,所以你应该在引用它后立即删除括号/括号。

有关伪列的更多信息可用here

相关问题