Oracle中使用escape关键字实现like匹配特殊字符,以及&字符的转义
2015-05-24 23:26
465 查看
escape 关键字用于定义转义符,在模式中,当转义符置于通配符之前时,该通配符就解释为普通字符。
1.首先创建测试表
2.插入含有特殊字符的数据数据,这里我主要以‘%’做测试
这里大家注意一点,插入的数据含有‘&’并且不是以‘&’结尾的时候要使用:
3.使用escape关键字在模糊查询中查看name含有‘a%’的结果
我们看到现在已经得到正确的结果集,但是,好朋友突发奇想提出了说要匹配‘a%%’,当时没有多想,直接使用escape把‘a%’定义为转义符,结果:
oracle规定转义符只能是单字符,思索许久,终于想到两个特殊字符‘/’和‘\’.
我们看到‘/’和‘\’在查询结果匹配的时候是不占位的,所以建议大家在以后使用到escape的时候为方便起见可以选择‘/’和‘\’。
4.使用escape关键字模糊查询含有’&’的结果:
这个错误的意思就是在‘/’后面没有特殊字符。为什么呢?之前我们使用set define off关闭替代变量功能之后,&直接被当做普通字符,而不用escape。那么,我们使用set define on打开替代变量功能:
但是,打开替代变量功能后,在查询的时候可能要输入查询关键字,这是可以使用’&’的ascii来绕过这个障碍
使用chr(38)去替代特殊字符’&’
总结:对于使用escape关键字去转义特殊字符的时候,并不是对于所有的特殊字符都能够转义成功,上面的实验表明,对于’%’, ‘‘, ‘&’来说,使用escape是能够成功转义’%’, ‘‘的,但是却不能转义’&’,当然这只是默认的情况,如果我们将绑定变量的标识符设置为非默认的$,那么我们就可以把’&’当做普通字符对待了。如果不改变绑定变量的默认标识符,那么就使用chr(38)去替代’&’!
1.首先创建测试表
create table STUDENTS ( ID NUMBER, NAME VARCHAR2(10), AGE NUMBER )
2.插入含有特殊字符的数据数据,这里我主要以‘%’做测试
insert into students values (1,'aaaa',20); insert into students values (2,'aa%a',18); insert into students values (3,'aa%%',22); insert into students values (4,'aaa&',16); commit;
这里大家注意一点,插入的数据含有‘&’并且不是以‘&’结尾的时候要使用:
set define off;--闭替代变量的功能
3.使用escape关键字在模糊查询中查看name含有‘a%’的结果
我们看到现在已经得到正确的结果集,但是,好朋友突发奇想提出了说要匹配‘a%%’,当时没有多想,直接使用escape把‘a%’定义为转义符,结果:
oracle规定转义符只能是单字符,思索许久,终于想到两个特殊字符‘/’和‘\’.
我们看到‘/’和‘\’在查询结果匹配的时候是不占位的,所以建议大家在以后使用到escape的时候为方便起见可以选择‘/’和‘\’。
4.使用escape关键字模糊查询含有’&’的结果:
这个错误的意思就是在‘/’后面没有特殊字符。为什么呢?之前我们使用set define off关闭替代变量功能之后,&直接被当做普通字符,而不用escape。那么,我们使用set define on打开替代变量功能:
但是,打开替代变量功能后,在查询的时候可能要输入查询关键字,这是可以使用’&’的ascii来绕过这个障碍
使用chr(38)去替代特殊字符’&’
总结:对于使用escape关键字去转义特殊字符的时候,并不是对于所有的特殊字符都能够转义成功,上面的实验表明,对于’%’, ‘‘, ‘&’来说,使用escape是能够成功转义’%’, ‘‘的,但是却不能转义’&’,当然这只是默认的情况,如果我们将绑定变量的标识符设置为非默认的$,那么我们就可以把’&’当做普通字符对待了。如果不改变绑定变量的默认标识符,那么就使用chr(38)去替代’&’!
相关文章推荐
- Oracle中使用escape关键字实现like匹配特殊字符,以及&字符的转义
- Oracle中使用escape关键字实现like匹配特殊字符,以及&字符的转义
- oracle & 和 ' 特殊字符处理 ( like 'GAC/&_%' escape '&'; 这里面的 / 居然将& 转义了 为什么?)
- oracle使用like匹配特殊字符解决办法
- 今天说说Oracle中的字符转义问题吧——escape关键字
- oracle中 特殊字符 转义 (&)
- 如果要查找%'或'_',则需要使用关键字ESCAPE定义一个转义符号
- Mysql LIKE中特殊字符转义【附php实现函数】
- Mysql LIKE中特殊字符转义【附php实现函数】
- Mysql LIKE中特殊字符转义【附php实现函数】
- Mysql LIKE中特殊字符转义【附php实现函数】
- Oracle特殊字符转义:&和'
- 使用ICU库中的正则表达式匹配关键字之间含有特殊字符的关键字示例
- mysql_real_escape_string() 函数转义 SQL 语句中使用的字符串中的特殊字符,可使用本函数来预防数据库攻击。
- 24. PowerShell -- 使用特殊文本命令(-contains字符串比较,-like 匹配字符)
- Oracle特殊字符转义:&和'
- regex 正则表达式 需要转义的特殊字符 以及 java、python实现
- Oracle SQL 部分特殊字符转义及escape的用法
- Oracle 中 特殊字符 & 的转义!
- Oracle 中 特殊字符 & 的转义!