错误ORA-00920:无效的关系运算符

时间:2019-09-20 22:56:21

标签: sql oracle

我认为错误是来自case语句的,但我无法弄清楚是什么导致了这种问题。

这是我的查询:

self.reqMatchingSymbols(211, "IB")

3 个答案:

答案 0 :(得分:0)

您的联接表名称具有三个参数,只允许两个参数:

INNER JOIN striker.saasta_prod.accessibility_std_disabilities asd

您是否从SQL Server复制了此文件,并允许在其中为数据库名称添加前缀?在Oracle中不允许这样做。

答案 1 :(得分:0)

因为,您需要用nullif()nvl()替换isnull()函数,并且需要它们的第二个参数。由于Oracle DB没有isnull()功能,而另一个数据库(例如SQL Server)却没有。

它们的所有使用逻辑都是相似的。

答案 2 :(得分:0)

如Brian Leach所述,表的引用方式有点麻烦:在Oracle中,您可以使用my_schema.my_table,但不支持使用三个点分隔的部分。

CASE表达式中还有一个问题:

  

WHEN (isnull(doc_exp_date)) THEN 1

Oracle中没有ISNULL()函数。

在SQL Server中,ISNULL()用于检查第一个参数是否为NULL,并且在这种情况下,将其替换为第二个参数。 Oracle等效为NVL()

但是由于您使用此表达式作为条件,所以我怀疑您实际上是在说:

WHEN doc_exp_date IS NULL THEN 1