这几天看的oca的教材,期间做了一个查询操作

select owner,table_name,comments

from all_tab_comments

where table_name='CHANGE_LOG';

是个查询表注释的操作,敲得是后表名用的是‘chang_log’,没有用大写,结果就是查不出来,之前总是记得不区分大小写,这回又区分了,搜寻答案的过程总是收获颇丰

1、在查询时时区分大小写的,可做实验如下

创建test表,有一列名为ID,值a

select * from test where id = 'a';

select * from test where id = 'A';

结果是不同的

2、有解除这种区分大小写的方法:ALTER SESSION SET NLS_COMP=ANSI;

ALTER SESSION SET NLS_SORT=binary_ci;

还有给出解释的一篇文章,不过后半部分没懂、、、

3、找结果的过程还发现一个11g用户口令区分大小写的方法BANNER

--------------------------------------------------------------------------------

Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production

PL/SQL Release 11.1.0.6.0 - Production

CORE    11.1.0.6.0      Production

TNS for Linux: Version 11.1.0.6.0 - Production

NLSRTL Version 11.1.0.6.0 - Production

我的版本

在11g中有个初始参数可以供用户控制口令用不用区分大小写,该参数为:

sec_case_sensitive_logon=true       区分大小写  (default)

sec_case_sensitive_logon=false       不区分大小写

4、上面链接的博客里set autot on这个命令没懂什么意思

5、在不知道要查询的字符串在数据库中存储的是大写还是小写的情况下,可以用UPPER(name) = 'A',即先统一变成大写,或用LOWER变小写

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐