在字段里查找"%",涉及到Oracle的转义字符,现总结如下: SQL> select * from test;TEST
--------------------
sdd_kk
d"d
dfsfsa
dffa%asfs
12345
1%2345
1%54321
2%54321
%%54321
A&B已选择9行。
其中包含特殊的字符分别为%,_,&,有可能包含这些字符的数据含有错误,或者需要查找包含这些字符的数据。
SQL> select * from test where test like "sdd _%" escape " ";TEST
--------------------
sdd_kk 转义字符为" ";SQL> select * from test where test like "sdd\_%" escape "";TEST
--------------------
sdd_kk转义字符为"";
SQL> select * from test where test like "sdd=_%" escape "=";TEST
--------------------
sdd_kk 转义字符为"=";SQL> select * from test where test like "sdd/_%" escape "/";TEST
--------------------
sdd_kk 转义字符为"/";SQL> select * from test where test like "sddd_%" escape "d";未选定行 转义字符为d,没有实现转义功能;SQL> select * from test where test like "%\_%" escape "";TEST
--------------------
sdd_kk 查找包含所有"_"的字段。 同理:通过这种方法查找含有"%"的所有字段:SQL> select * from test where test like "%\%%" escape "";TEST
--------------------
dffa%asfs
1%2345
1%54321
2%54321
%%54321 但是"&"不能通过转义字符查找:SQL> select * from test where test like "%&%" escape"";
select * from test where test like "%&%" escape""
*
第 1 行出现错误:
ORA-01424: 转义符之后字符缺失或非法 可以通过另外的方式进行转义:SQL> select ascii("&") from dual;ASCII("&")
----------
38SQL> select * from test where test like "%"||chr(38)||"%";TEST
--------------------
A&B """的转义:SQL> select * from test where test like "%""%";TEST
--------------------
d"d特殊符号的数据的插入SQL> insert into test values("test&test");
输入 test 的值: test
原值 1: insert into test values("test&test")
新值 1: insert into test values("testtest") -虽然插入,但是数据不对。已创建 1 行。SQL> show define
define "&" (hex 26)
SQL> set define off
SQL> show define
define OFF
SQL> insert into test values("test&test");已创建 1 行。SQL> show escape
escape OFF
SQL> set escape on
SQL> show escape
escape "" (hex 5c)
SQL> insert into test values("test&test");已创建 1 行。SQL> select * from test;TEST
--------------------
sdd_kk
d"d
dfsfsa
dffa%asfs
12345
1%2345
1%54321
2%54321
%%54321
A&B
testtestTEST
--------------------
test&test
test&test已选择13行。SQL> commit;提交完成。SQL> select * from test;TEST
--------------------
sdd_kk
d"d
dfsfsa
dffa%asfs
12345
1%2345
1%54321
2%54321
%%54321
A&B
testtestTEST
--------------------
test&test
test&test已选择13行。SQL> insert into test values("test\%test");已创建 1 行。SQL> insert into test values("test\_test");已创建 1 行。SQL> insert into test values("test"test);
insert into test values("test"test)
*
第 1 行出现错误:
ORA-00917: 缺失逗号
SQL> insert into test values("test""test");已创建 1 行。SQL> select * from test;TEST
--------------------
sdd_kk
d"d
dfsfsa
dffa%asfs
12345
1%2345
1%54321
2%54321
%%54321
A&B
testtestTEST
--------------------
test&test
test&test
test%test
test_test
test"test已选择16行。Oracle redo 和undo配Hibernate会遇到的常见问题相关资讯 Oracle教程 - Oracle中纯数字的varchar2类型和 (07/29/2015 07:20:43)
- Oracle教程:Oracle中查看DBLink密 (07/29/2015 07:16:55)
- [Oracle] SQL*Loader 详细使用教程 (08/11/2013 21:30:36)
| - Oracle教程:Oracle中kill死锁进程 (07/29/2015 07:18:28)
- Oracle教程:ORA-25153 临时表空间 (07/29/2015 07:13:37)
- Oracle教程之管理安全和资源 (04/08/2013 11:39:32)
|
本文评论 查看全部评论 (0)