ORACLE中ESCAPE关键字用法

上传人:平*** 文档编号:13360374 上传时间:2017-10-23 格式:DOCX 页数:10 大小:19.75KB
返回 下载 相关 举报
ORACLE中ESCAPE关键字用法_第1页
第1页 / 共10页
ORACLE中ESCAPE关键字用法_第2页
第2页 / 共10页
ORACLE中ESCAPE关键字用法_第3页
第3页 / 共10页
ORACLE中ESCAPE关键字用法_第4页
第4页 / 共10页
ORACLE中ESCAPE关键字用法_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《ORACLE中ESCAPE关键字用法》由会员分享,可在线阅读,更多相关《ORACLE中ESCAPE关键字用法(10页珍藏版)》请在金锄头文库上搜索。

1、ORACLE 中 ESCAPE 关键字用法2012-09-19 00:00 比特网悠虎关键字:定义:escape 关键字经常用于使某些特殊字符,如通配符:%,_ 转义为它们原来的字符的意义,被定义的转义字符通常使用,但是也可以使用其他的符号。实例:SQL select * from t11 where name like %_%;NAME-aa_aaaaSQL select * from t11 where name like %_% escape ;NAME-aa_a注意:如果是 / 作为检索字符, 必须 用 / 作为转义符, 正斜扛也一样。select * from wan_test wh

2、ere psid like %/% escape /1. 使用 ESCAPE 关键字定义转义符。在模式中,当转义符置于通配符之前时,该通配符就解释为普通字符。2.ESCAPE escape_character 允许在字符串中搜索通配符而不是将其作为通配符使用。escape_character 是放在通配符前表示此特殊用途的字符。select * from a WHERE name LIKE %/%ab ESCAPE /结果为:name-11%ab12%ab=SQL select * from test;TEST-sdd_kkdddfsfsadffa%asfs123451%23451%54321

3、2%54321%54321A&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 se

4、lect * 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查找包含所有_的字段。同理:通过这种方法查找含有%的所有

5、字段:SQL select * from test where test like % escape ;TEST-dffa%asfs1%23451%543212%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

6、 * from test where test like %|chr(38)|%;TEST-A&B的转义:SQL select * from test where test like %;TEST-dd特殊符号的数据的插入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 definedefine & (hex 26)S

7、QL set define offSQL show definedefine OFFSQL insert into test values(test&test);已创建 1 行。SQL show escapeescape OFFSQL set escape onSQL show escapeescape (hex 5c)SQL insert into test values(test&test);已创建 1 行。SQL select * from test;TEST-sdd_kkdddfsfsadffa%asfs123451%23451%543212%54321%54321A&Btesttes

8、ttest&testtest&test已选择 13 行。SQL commit;提交完成。SQL select * from test;TEST-sdd_kkdddfsfsadffa%asfs123451%23451%543212%54321%54321A&Btesttesttest&testtest&test已选择 13 行。SQL insert into test values(test%test);已创建 1 行。SQL insert into test values(test_test);已创建 1 行。SQL insert into test values(testtest);inse

9、rt into test values(testtest)*第 1 行出现错误:ORA-00917: 缺失逗号SQL insert into test values(testtest);已创建 1 行。SQL select * from test;TEST-sdd_kkdddfsfsadffa%asfs123451%23451%543212%54321%54321A&Btesttesttest&testtest&testtest%testtest_testtesttest已选择 16 行。连接符|导致了新一轮的转义:连接符号| 左右的单引号没有任何的关系,除非|是作为字符串的一部分(这在动态 SQL 中很常见)。SQL SELECT ORACLE| FROM DUAL;ORACLE|-ORACLE个人理解,ORACLE| 后面的“”应该认为是一个字符串(即前后单引号,中间是“”串,而中间又是密集单引号,因此第一个为转义功能)SQL SELECT ORACLE FROM DUAL;ORACLE-ORACLE对于第一个,前两个单引号配对,后面四个单引号按照上面的第一条原则分配,既:SELECT ORACLE| FROM DUAL;对于第二个,由于第二个单引号后面存在单引号,所以就不与第一个配对,而是充当了转义的角色。既:SELECT ORACLE FROM DUAL;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号