oracle Discoveryr 11g日期错误ORA-00920无效的关系运算符

oracle Discoveryr 11g日期错误ORA-00920无效的关系运算符,oracle,Oracle,我有很多疑问如下 WHERE ( (o215251.MS_SUB_ACNT_CODE = o215225.TD_SUB_ACNT_CODE(+) AND o215251.MS_MAIN_ACNT_CODE = o215225.TD_MAIN_ACNT_CODE(+))) AND (o215225.STATUS(+) = 'P') AND (o215225.TD_MAIN_ACNT_CODE(+) = '989898'

我有很多疑问如下

  WHERE   ( (o215251.MS_SUB_ACNT_CODE = o215225.TD_SUB_ACNT_CODE(+)
          AND o215251.MS_MAIN_ACNT_CODE = o215225.TD_MAIN_ACNT_CODE(+)))
       AND (o215225.STATUS(+) = 'P')
       AND (o215225.TD_MAIN_ACNT_CODE(+) = '989898'
            AND o215251.MS_MAIN_ACNT_CODE = '989898')
       AND ( (o215225.DOC_DATE)(+) BETWEEN :FromDate AND :ToDate)
在Oracle Discoveryr 10g中,我在运行这些类型的查询时没有问题,但我们在测试Oracle Discoveryr 11g时,对于这些类型的查询总是会出现错误: ORA-00920:无效的关系运算符

如果我删除了日期过滤器,查询将运行正常

我无法改变这些疑问,这几乎是不可能的


任何其他解决方案,一些注册表调整?

@AlexPoole,我通过应用oracle修补程序10277316解决了它。

您能看到oracle如何在两种平台下重写查询以执行,以及绑定参数实际设置为什么吗?如果重写的SQL实际上在11g中有效,那么您可能应该向Oracle发出服务请求。不过,我想看看它是否能与ANSI外部联接一起工作,而不是Oracle的旧
(+)
语法。@AlexPoole,我通过应用Oracle第10277316号修补程序解决了这个问题。我发布的上述代码是Oracle Discoveryr在向Discoveryr添加日期参数时如何重写查询的。好的,很好。您可以添加您必须执行的操作作为答案,并接受它-最好将补丁引用和简单描述作为答案,而不仅仅是注释,这样其他有相同问题的人就可以轻松看到如何进行与您相同的更改。