“ORA-01722:无效数字”错误,即使查询中没有涉及数字也是如此

时间:2014-02-17 14:22:38

标签: sql oracle

我有以下查询

SELECT T1.col2
FROM T1
  LEFT OUTER JOIN T2 
  ON ',' + T2.col2 + ','  LIKE '%,' + T1.col1 + ',%'

Fiddle

没有涉及数字。仍然显示以下错误

  

ORA-01722:无效的数字:SELECT T1.col2 FROM T1 LEFT OUTER JOIN T2 ON','+ T2.col2 +','LIKE'%,'+ T1.col1 +',%'

我们如何解决?

参考

  1. Oracle faq - ORA-01722

2 个答案:

答案 0 :(得分:2)

我是Oracle的新手,这是一种不正确的语法。我们需要使用||而不是+。连接运算符与SQL Server

不同
  1. Concatenation Operator
  2. Joining tables with LIKE (SQL)
  3. 然而,消息ORA-01722: invalid number似乎具有误导性

答案 1 :(得分:1)

+运算符期望数字作为操作数。如果你给它字符串,那么它们是无效的数字。所以它在技术上是正确的,最好的正确。

欢迎使用Oracle。 :d