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

问题描述 投票:0回答:1

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

    <some query> 
    and this_.NAME like  '%<some_string>%' escape '\'   
    and this_.ID IN ()

这将抛出异常。但是,如果我改变订单,如下所示,它的工作原理:

    <some query> 
    and this_.ID IN ()
    and this_.NAME like  '%<some_string>%' escape '\'

任何帮助,将不胜感激。

sql oracle hibernate
1个回答
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
© www.soinside.com 2019 - 2024. All rights reserved.