网站首页
JSP空间
动态资讯
开源项目
技术文档
资源下载
J2EE资源
客户论坛
在线支付
 
  技术文档>>数据库技术>>Oracle技术>>Oracle开发>查看文档  
  不通过"lower"等函数查询大小写的内容     
  文章作者:未知  文章来源:赛迪网技术社区  
  查看:124次  录入:管理员--2008-02-25  
 

有些时候我们在查询时不想通过lower或者upper等函数而把大小写的内容都查询出来,在oracle 10g可以这么实现。

sql> select * from v$version;

banner
----------------------------------------------------------------
oracle database 10g enterprise edition release 10.2.0.1.0 - prod
pl/sql release 10.2.0.1.0 - production
core 10.2.0.1.0 production

tns for 32-bit windows: version 10.2.0.1.0 - production
nlsrtl version 10.2.0.1.0 - production

sql> select * from test;

id
--------------------
a
a

sql> select * from test where id='a';

id
--------------------
a

sql> alter session set nls_comp=ansi;

session altered

sql> alter session set nls_sort=binary_ci;

session altered

sql> select * from test where id='a';

id
--------------------
a
a

sql> select * from test where id='a';

id
--------------------
a
a

sql>

10gr2中,nls_com新增加了一个值linguistic ,设置这个值,可以使在nl_sort中设置大小写不敏感。相应的,nl_sort也增加了一个值:binary_ci,(ci即case insensitive),也就是大小写不敏感。

但是,实际上设置过这两个值以后,并非真正大小写不敏感了,而是相当于oracle会自动给语句加上upper函数。例子:

sql> set autot on
sql> select * from t2 where f1 = 'a';

f1 aaa
---------- ----------
a 2


execution plan
----------------------------------------------------------
plan hash value: 2238318762

--------------------------------------------------------------------------------
-------
| id | operation | name | rows | bytes | cost (%cpu)| tim
e |
--------------------------------------------------------------------------------
-------
| 0 | select statement | | 1 | 5 | 2 (0)| 00:
00:01 |
| 1 | table access by index rowid| t2 | 1 | 5 | 2 (0)| 00:
00:01 |
|* 2 | index range scan | t2_idx1 | 1 | | 1 (0)| 00:
00:01 |
--------------------------------------------------------------------------------
-------

predicate information (identified by operation id):
---------------------------------------------------

2 - access("f1"='a')


statistics
----------------------------------------------------------
0 recursive calls
0 db block gets
0 consistent gets
0 physical reads
0 redo size
0 bytes sent via sql*net to client
0 bytes received via sql*net from client
0 sql*net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed

sql> alter session set nls_sort=binary_ci;

session altered.

sql> alter session set nls_comp=linguistic;

session altered.

sql> select * from t2 where f1 = 'a';

f1 aaa
---------- ----------
a 1
a 2


execution plan
----------------------------------------------------------
plan hash value: 1513984157

--------------------------------------------------------------------------
| id | operation | name | rows | bytes | cost (%cpu)| time |
--------------------------------------------------------------------------
| 0 | select statement | | 1 | 5 | 3 (0)| 00:00:01 |
|* 1 | table access full| t2 | 1 | 5 | 3 (0)| 00:00:01 |
--------------------------------------------------------------------------

predicate information (identified by operation id):
---------------------------------------------------

1 - filter(nlssort("f1",'nls_sort=''binary_ci''')=hextoraw('6100') )


statistics
----------------------------------------------------------
0 recursive calls
0 db block gets
0 consistent gets
0 physical reads
0 redo size
0 bytes sent via sql*net to client
0 bytes received via sql*net from client
0 sql*net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
2 rows processed

 
 
上一篇: oracle 10g "dataguard"的日志传输方式    下一篇: 实例讲解表碎片的具体起因及解决的办法 (1)
  相关文档
备份集目录发生改变时应当如何进行恢复 03-05
oracle数据库中的表连接方式及使用场合 04-07
在oracle中使用自治事务保存日志表条目 02-02
让oracle数据表不显示中文而变成问号的方法 07-24
基于已被证实的oracle高可用性技术maa 03-14
oracle数据库中如何使用超过2g的内存 03-31
指定一个where条件来有条件地导出记录 04-03
带你深入了解oracle数据库的进制转换 03-11
for loop读取游标和open close的区别 04-15
详细讲解Oracle中DECODE()函数的使用法 05-27
讲解oracle数据库ora-00257故障的解决过程 (1) 07-15
带你深入了解oracle跟踪事件:set events 07-24
讲解数据库变慢的三种情况及具体处理方法 06-04
帮你充分认识 Oracle 数据库表与视图 05-13
oracle数据库中管理表空间和数据文件 (1) 04-24
在单机上创建物理oracle数据库9i standby 07-17
Oracle中用SQL语句实现进制间互相转换 07-07
oracle11g之初体验 数据中心自动化等功能 09-24
oracle 10g分区表维护中的两个注意事项 04-30
用sys执行全文索引的建立时出现权限不足 03-17
返回首页 | 关于我们 | J网章程 | JSP空间合租 | 客服中心 | 免责声明 | 常见问题 | 参观机房
本站主机空间代理至厦门市华众网络科技有限公司
《中华人民共和国增值电信业务经营许可证》
编号:闽B2-20050079
@2005-2008福建JSP技术网 版权所有 闽ICP备05000928号
厦门(总部):13616026886 福州:0591-87655121
邮箱:admin@fjjsp.com 站长QQ,点击这里给我发消息