建庫選項-字元串比較大小寫敏感-測試
一、目的
針對建庫選項-字元串比較大小寫敏感-進行測試
二、疑問
什麼是大小寫敏感?
敏感如何? 不敏感如何? 能否轉換?
建庫如何指定?
三、測試
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