select * from emp where ename like '%\_%' escape '\' ;\可以换作任意的字符
select * from emp where ename like '%\%%' escape '\';
但是'&'不能通过转义字符查找 如果按上面的写法, select * from emp where ename like '%\&' escape '\'; 会提示:ORA-01424: 转义符之后字符缺失或非法 可以通过另外的方式进行转义: select ascii('&') from dual; ASCII('&') ---------- 38 select * from emp where ename like '%' || chr(38) || '%';
在oracle中chr()函数和ascii()是一对反函数 chr()函数将ASCII码转换为字符:ASCII码 --> 字符 ascii('字符')函数获得该字符的ascii码值,将字符转换为ASCII码:字符 --> ASCII码
但是,注意%不能用这种方法转义(%号的ascii码为37)因为转出来还是一个%号,还是会当做通配符找出所有的数据