DM-建库选项-字符串比较大小写敏感-测试

一、目的

    针对建库选项-字符串比较大小写敏感-进行测试

二、疑问

什么是大小写敏感?

敏感如何? 不敏感如何? 能否转换?

建库如何指定?

三、测试

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
原文地址:https://www.cnblogs.com/lvcha001/p/14225020.html