Oracle的转义字符之学习_MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 2690 | 回复: 0   主题: Oracle的转义字符之学习        下一篇 
    本主题由 koei123 于 2015-6-1 14:57:09 移动
tk
注册用户
等级:中士
经验:207
发帖:80
精华:0
注册:2011-10-19
状态:离线
发送短消息息给tk 加好友    发送短消息息给tk 发消息
发表于: IP:您无权察看 2015-4-1 15:17:17 | [全部帖] [楼主帖] 楼主

Oracle的转义字符需要用ESCAPE函数来定义,小小学习一下:

SQL> create table t_char(a varchar2(20));
SQL> insert into t_char values('a_b');
SQL> insert into t_char values('acb');
SQL> insert into t_char values('a%b');
SQL> insert into t_char values('a''b');
SQL> insert into t_char values('a/b');
SQL> insert into t_char values('a\b');
SQL> insert into t_char values('%');
SQL> insert into t_char values('_');
SQL> insert into t_char values('a');
SQL> commit;
SQL> select * from t_char;
A
--------------------
a_b
acb
a%b
a'b
a/b
a\b
%
_
a
SQL> select * from t_char where a like 'a_b';
A
--------------------
a_b
acb
a%b
a'b
a/b
a\b
SQL> select * from t_char where a like 'a\_b' escape '\';
A
--------------------
a_b
--可见要查询含有通配字符的字符串,必须要使用escape函数
SQL> select * from t_char where a like 'a\'b' escape '\';
ERROR:
ORA-01756: quoted string not properly terminated
SQL> select * from t_char where a like 'a''b' escape '\';
A
--------------------
a'b
--但是字符'还是需要用两个''来代替字符串中的单引号 
SQL> select * from t_char where a like 'ax_b' escape 'x';
A
--------------------
a_b
SQL> select * from t_char where a like 'a''_b' escape '''';
A
--------------------
a_b
SQL> select * from t_char where a like 'a_%b' escape '_';
A
--------------------
a%b
--可以用其他字符,甚至是“'”、“_”、“%”来用作转义字符,但是一般都使用\,以免发生逻辑错误
SQL> select * from t_char where a like 'a\/b' escape '\';
select * from t_char where a like 'a\/b' escape '\'
*
ERROR at line 1:
ORA-01424: missing or illegal character following the escape character
SQL> select * from t_char where a like 'a_/b' escape '_';
select * from t_char where a like 'a_/b' escape '_'
*
ERROR at line 1:
ORA-01424: missing or illegal character following the escape character
SQL> select * from t_char where a like 'a//b' escape '/';
A
--------------------
a/b
SQL> select * from t_char where a like 'a/\b' escape '/';
select * from t_char where a like 'a/\b' escape '/'
*
ERROR at line 1:
ORA-01424: missing or illegal character following the escape character
SQL> select * from t_char where a like 'a\\b' escape '\';
A
--------------------
a\b
--要搜索"/"或者"\"则必须使用与之相同的符号作为转义字符,否则无效


基本上的使用方法就是这些了,还需要注意一点,这里的escape函数,和sqlplus中的escape环境参数·毫·无·关·系·

SQL> show escape
escape OFF
-The End-


--转自 北京联动北方科技有限公司

该贴由koei123转至本版2015-6-1 14:57:09



赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论