如何解决使用左外部联接+语法时发生ORA 00936错误
| 我有两个表:T1和T2 T1具有一个DATE列:CT1 T2具有一个DATE列:CT2 我想让外部连接T1和T2具有连接条件:trunc(CT1,\'Mi\')=trunc(CT2,\'Mi\')(+)
当我尝试运行此SQL时,收到错误ORA 00936:缺少表达式。
知道这里有什么问题吗?
解决方法
我认为您需要在适用的列名后立即放置“ 1”运算符。
trunc(CT1,\'Mi\')=trunc(CT2 (+),\'Mi\')
\“(+)运算符只能应用于一列,不能应用于任意表达式。但是,任意表达式可以包含一个或多个标有(+)运算符的列。 oracle.com/docs/cd/B19306_01/server.102/b14200/queries006.htm)
无论如何,我建议使用ANSI语法。它更清晰,功能更强大且可移植。
, 尝试使用ANSI语法:
T1 LEFT OUTER JOIN T2 ON TRUNC(CT1,\'Mi\')=TRUNC(CT2,\'Mi\')
(+)外部联接语法有一些限制,这可能是其中之一。当然,如果更改此联接,则必须全部更改-您不能将两者混在一起。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。