ORA-01722:使用“escape”时无效的数字异常

时间:2018-03-06 06:55:53

标签: sql oracle hibernate

我有特殊字符的查询,我在其中使用“escape”。它适用于单个过滤器但多个过滤器,它提供ORA-01722:无效数字异常。示例:




 < some query> 
和this_.NAME一样'%< some_string>%'''''和#xA;和this_.ID IN()
  




这将抛出异常。
但是,如果我改变顺序,如下所示,它有效:




 < some query> 
和this_.ID IN()
和this_.NAME一样'%< some_string>%'转义'\'
  




任何帮助都将不胜感激。




1 个答案:

答案 0 :(得分:0)

  

它适用于单个过滤器,但多个过滤器可以提供ORA-01722:无效数字异常。

它应该适用于多个过滤谓词。

例如,

SQL> WITH DATA AS(
  2  SELECT 1 cola, 'a%b%c' colb FROM dual
  3  UNION ALL
  4  SELECT 2 cola, 'abc' colb FROM dual
  5  )
  6  SELECT * FROM DATA
  7  WHERE colb LIKE '%\%b\%%' ESCAPE '\'
  8  AND cola IN (1,2);

      COLA COLB
---------- -----
         1 a%b%c