Oracle 转义字符
一、准备特殊数据
create table t_escape(s varchar2(50));
--show define -- define "&" (hex 26)
--show escape -- escape off
set define off
set escape on
insert into t_escape values('string&text');
insert into t_escape values('string/&text');
insert into t_escape values('string/%text');
insert into t_escape values('string/_text');
insert into t_escape values('string''text');
set escape off
set define on
insert into t_escape values('Top_Gun');
insert into t_escape values('Tom''s eye');
insert into t_escape values('normal');
insert into t_escape values('100%ps');
insert into t_escape values('12345');
insert into t_escape values('15%30');
insert into t_escape values('%40');
insert into t_escape values('25%XT');
insert into t_escape values('%%A3E5');
set define off
--直接插入如下数据时,插入结果不正确。
insert into t_escape values('T&T Company');
set define on
commit;
/
二、使用转义查询
[界定符][转义符]%'escape'[界定符] 为转义定义,如
转义_,使用$_%'escape'$,这里界定符是$。
select * from t_escape where s like 'Top$_%'escape'$';
界定符可以是空格,/,=,/,|,不能是字母。
例,查找含有'%'的所有字段:
select * from t_escape where s like '%/%%' escape '/';
'&'不能通过转义字符查找:
select * from t_escape where s like '%/&%' escape'/';
可以通过另外的方式进行转义:
select ascii('&') from dual; -- ASCII = 38
select * from t_escape where s like '%'||chr(38)||'%';
查找单引号:
select * from t_escape where s like '%''%';
上一篇: 数据库范式
下一篇: 【牛客网OJ题】颠倒数字
推荐阅读
-
Oracle 转义字符
-
Oracle存储过程的部分知识复习(待续) execute immediateusingcastsubstrlength
-
oracle中 connect by prior 递归算法收藏 博客分类: 数据库 算法Oracle数据结构.netBlog
-
动态SQL之EXECUTE IMMEDIATE 博客分类: oracle/开发 oracle动态SQLEXECUTE IMMEDIATE
-
Oracle创建DB Link 博客分类: 数据库 dblink
-
Oracle 转义字符
-
oracle中 connect by prior 递归算法收藏 博客分类: 数据库 算法Oracle数据结构.netBlog
-
连接远程数据库问题 博客分类: 数据库 oracle
-
远程连接数据库问题 博客分类: 数据库 Oracle
-
连接远程数据库问题 博客分类: 数据库 oracle