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


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



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


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



 任何帮助都将不胜感激。

答案 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