我有特殊字符的查询,我在其中使用“逃避”。它适用于单个过滤器但多个过滤器,它提供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 '\'
任何帮助,将不胜感激。
它适用于单个过滤器但多个过滤器,它提供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