程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> 對Oracle 數據類型的全新認識

對Oracle 數據類型的全新認識

編輯:Oracle數據庫基礎

本文主要介紹的是Oracle 數據類型,通過實例的演示,我們將全面分析Oralce的基本的數據類型以及它們不同的存儲方式。我們現在就以Oracle 10G作為為基礎,來介紹oralce 10g引入新的數據類型。

讓你對Oracle數據類型有一個全新的認識。揭示一些不為人知的秘密和被忽略的盲點。從實用和優化的角度出發,討論每種Oracle 數據類型的特點。從這裡開始Oracle之旅!

第一部份 字符類型

1.1 char

定長字符串,會用空格來填充來達到其最大長度,最長2000個字節。

1. 新建一個測試表test_char.,只有一個char類型的列。長度為10

  1. SQL> create table test_char(colA char(10));  
  2. Table created  

2. 向這個表中插入一些數據。

  1. SQL> insert into test_char values('a');  
  2. 1 row inserted  
  3. SQL> insert into test_char values('aa');  
  4. 1 row inserted  
  5. SQL> insert into test_char values('aaa');  
  6. 1 row inserted  
  7. SQL> insert into test_char values('aaaa');  
  8. 1 row inserted  
  9. SQL> insert into test_char values('aaaaaaaaaa');  
  10. 1 row inserted  

注意:最多只能插入10個字節。否是就報錯。

  1. SQL> insert into test_char values('aaaaaaaaaaa');  
  2. insert into test_char values('aaaaaaaaaaa')  
  3. ORA-12899: value too large for column "PUB_TEST".
    "TEST_CHAR"."COLA" (actual: 11, maximum: 10)  

3. 使用dump函數可以查看每一行的內部存數結構。

  1. SQL> select colA, dump(colA) from test_char;  
  2. COLA DUMP(COLA)  
  3. Typ=96 Len=10: 97,32,32,32,32,32,32,32,32,32  
  4. aa Typ=96 Len=10: 97,97,32,32,32,32,32,32,32,32  
  5. aaa Typ=96 Len=10: 97,97,97,32,32,32,32,32,32,32  
  6. aaaa Typ=96 Len=10: 97,97,97,97,32,32,32,32,32,32  
  7. aaaaaaaaaa Typ=96 Len=10: 97,97,97,97,97,97,97,97,97,97  

注意:Typ=96 表示Oracle 數據類型的ID。Oracle為每一種數據類型都進行了編號。說明char類型的編號是96. Len =10 表示所在的內部存儲的長度(用字節表示)。雖然第一例只存了一個字符’a’,但是它還是占用了10個字節的空間。 97,32,32,32,32,32,32,32,32,32 表示內部存儲方式。

可見Oracle的內部存儲是以數據庫字符集進行存儲的。 97正好是字符a的ASCII碼。 可以使用chr函數把ASCII碼轉成字符。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved