建库选项-字符串比较大小写敏感-测试
绿茶有点甜 人气:0一、目的
针对建库选项-字符串比较大小写敏感-进行测试
二、疑问
什么是大小写敏感?
敏感如何? 不敏感如何? 能否转换?
建库如何指定?
三、测试
3.1 大小写敏感
DB版本测试环境DM8
SQL> select * from v$version;
行号 BANNER
---------- -------------------------
1 DM Database Server 64 V8
2 DB Version: 0x7000b
$dbca.sh建库图形化,选择-字符串比较大小写敏感-勾选,则敏感
1)查询数据库参数
SQL> select case_sensitive(); 行号 CASE_SENSITIVE() ---------- ---------------- 1 1
2)进行测试
SQL> create table test_Cc (c1 int,C2 int,"c3" int,"Cc4" int);
SQL> select table_name from user_tables where table_name like 'TEST%';
行号 TABLE_NAME
---------- ----------
1 TEST_CC
SQL> desc TEST_CC
行号 NAME TYPE$ NULLABLE
---------- ---- ------- --------
1 C1 INTEGER Y
2 C2 INTEGER Y
3 c3 INTEGER Y
4 Cc4 INTEGER Y
可以说明,当大小写敏感时,对于表名称,默认小写将转换为大写,大小写忽略!
对于双引号指定的大小写,则根据双引号进行强制指定。
3.2 大小写不敏感
$dbca.sh建库图形化,选择-字符串比较大小写敏感- !非勾选,则不敏感 1)查询数据库参数 SQL> select case_sensitive(); 行号 CASE_SENSITIVE() ---------- ---------------- 1 0 2)进行测试 SQL> create table test_Cc (c1 int,C2 int,"c3" int,"Cc4" int); SQL> select table_name from user_tables where table_name like 'TEST%'; 行号 TABLE_NAME ---------- ---------- 1 test_Cc SQL> desc TEST_CC
行号 name type$ nullable
---------- ---- ------- --------
1 c1 INTEGER Y
2 C2 INTEGER Y
3 c3 INTEGER Y
4 Cc4 INTEGER Y
可以说明,当大小写不敏感时,对于表名称,输入小写则数据字典存储表名称为小写! 对于双引号指定的大小写,则根据双引号进行强制指定。
四、总结
1.建库后无法调整大小写敏感参数;
2.勾选大小写铭感,则默认对小写转换为大写进行处理;
3.建库时,非勾选大小写敏感,则默认使用输入大小写,进行严格区分!
4.例外:在大小写敏感的情况下,使用双引号里面的数值,可以忽略大小写参数!并没有自动转换为大写。
SQL> create table a1(id int); 操作已执行 已用时间: 3.011(毫秒). 执行号:2107. SQL> create table "b1"(id int); 操作已执行 已用时间: 1.884(毫秒). 执行号:2108. SQL> desc a1 行号 NAME TYPE$ NULLABLE ---------- ---- ------- -------- 1 ID INTEGER Y 已用时间: 6.552(毫秒). 执行号:2109. SQL> desc b1 [-20001]:无效的对象名. 已用时间: 35.123(毫秒). 执行号:0. SQL> desc "b1" 行号 NAME TYPE$ NULLABLE ---------- ---- ------- -------- 1 ID INTEGER Y
加载全部内容