- 浏览: 556455 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
fiwrc:
知道了. 谢谢~!
\(^_^)/ Java多线程Master-Worker模式 -
fiwrc:
求问 getResultMap 是什么方法???? .. ...
\(^_^)/ Java多线程Master-Worker模式 -
我改名了:
...
\(^_^)/ 表达式解析器(MVEL) -
拓子轩:
赞一个
Oracle 语句大全 -
rudaoxia:
写的很详细,很好,还有很多的拓展,谢谢博主,收下了
\(^_^)/ JDK工具、命令
定义:escape关键字经常用于使某些特殊字符,如通配符:'%','_'转义为它们原来的字符的意义,被定义的转义字符通常使用'\',但是也可以使用其他的符号。
实例:
SQL> select * from t11 where name like '%_%';
NAME
---------
aa_a
aaa
SQL> 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%ab
12%ab
==================================================================================
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('&')
----------
38
SQL> 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
testtest
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
testtest
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
testtest
test&test
test&test
test%test
test_test
test'test
已选择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;
发表评论
-
SQL语句查询优化
2016-04-15 09:33 755百万数据查询优化细则 ... -
DB2 SQLCODE 大全
2014-07-12 11:17 1131DB2错误信息(按sqlcode排 ... -
\(^_^)/ 数据库索引
2014-03-21 21:36 896参考:http://txf2004.iteye. ... -
SQLite 语法
2014-01-08 14:24 5040SQLite库可以解析大部分标准SQL语言。但它也省去了一 ... -
Oracle 查询效率
2013-12-16 10:31 880(1) 选择最有效率的 ... -
Oracle 命名
2013-09-30 14:14 16291、 编写目的 使用统 ... -
\(^_^)/ MySQL语句
2013-09-03 10:11 2405一、连接mysql。 格式: mysql -h主机地址 ... -
常用数据库 JDBC URL 格式
2013-08-12 16:26 1444Microsoft SQL Server Microso ... -
java Derby 介绍
2013-03-01 10:11 16191一、Derby数据库介绍 ... -
Oracle处理重复数据
2012-12-03 14:02 1810在一张表中某个字段下 ... -
数据库取前几条记录的语句
2012-11-28 10:14 3599数据库取前几条记录的 ... -
Oracle查看存储过程内容
2012-11-30 13:16 4944相关的数据字典 USER_SOURCE 用户的存储过程、函数 ... -
JDBC知识点
2012-10-12 23:47 1202JDBC的基本原理 JDBC是 ... -
Oracle中merge用法
2012-06-12 14:07 3015MERGE语句是Oracle9i新增的语法,用来合并UP ... -
Oracle 知识总结
2012-06-11 21:22 1125【run;r;/的用法】 SQL> SELECT ... -
Oracle 知识
2012-06-02 13:56 1406【run;r;/的用法】 ... -
Oracle 语句大全
2012-06-01 16:56 26301. Oracle安装完成后的 ... -
Oracle 分组统计
2012-06-01 16:35 17685Oracle统计函数 --Rank和Dense_Rank分类 ... -
Oracle 索引
2012-05-29 11:20 1396一.索引介绍 1.1 索引的创建语法: CRE ... -
Oracle Hint
2012-05-28 17:07 1479Hint 是Oracle 提供的一种SQL语法,它允许用户 ...
相关推荐
Oracle关键字用法整合
Oracle关键字(保留字)的总结,搬运而来,挣点积分,感谢下载
oracle数据库中包含的所有关键字收集
主要给大家介绍了关于mybatis中使用oracle关键字出错的解决方法,文中通过示例代码将解决的方法介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
主要介绍了oracle中利用关键字rownum查询前20名员工信息,本文通过代码给大家简单介绍了ORACLE 中ROWNUM用法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
oracle实现多字段匹配一个关键字查询的两种方法
oracle关键字,一些常用关键字
如果我想知道颜值有哪些取值,所以希望从结果集中去掉重复的记录,加上distinct关键字,位置在select和字段列表之间。distinct是从结果集中筛选出唯
有时我们在定义字段名及别名时所用名与oracle关键字同名,这时该如何处理呢? 其实很简单,只要在此关键字加上””,如”group” 看下面的例子: 代码如下: SQL> DROP TABLE k; Table dropped — 建立表K,字段名为...
这是美河管理员朋友花了大量时间翻译的Oracle OCP题库及关键词提炼,希望对致力于考Oracle 11g OCP的朋友有所帮助.
Oracle中EXECUTE IMMEDIATE用法
MySQL和Oracle的关键字还是不尽相同的,在Oracle数据库中,我们的数据表中定义了大量的code字段用来表示主键,但是在MySQL中code是关键字,使用以前的处理方法就有些“水土不服”。 下面我们来了解一下MySQL中的...
Pipelined 是Oracle的一个关键字
JSP+oracle实现小型多关键字检索模块
一般来说建表的时候是不会使用关键字的,可是之前的开发人员或者是数据库运维人员可能为了偷懒吧,在那张表中使用四个Oracle中的关键字, 所以导致查询的时候出现异常。 三、解决方案 找到问题的原因后,问题就好解决...
主要介绍了Oracle 实现 一个关键字 匹配多个 字段的方法,本文给大家提供两个方案,非常不错,具有一定的参考借鉴价值 ,需要的朋友可以参考下
没毛病,本人亲测oracle实现多字段匹配一个关键字查询
ORACLE数据库中PARTITION的用法[文].pdf
oracle数据库startwith用法