ORACLE中ESCAPE关键字用法.docx_第1页
ORACLE中ESCAPE关键字用法.docx_第2页
ORACLE中ESCAPE关键字用法.docx_第3页
ORACLE中ESCAPE关键字用法.docx_第4页
ORACLE中ESCAPE关键字用法.docx_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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 where 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%543212%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 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%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 * 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)SQL 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&Btesttesttest&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);insert 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 DU

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论