ORACLE 常用基本資料型別
1、字元型別
• CHAR:一個定長字串,當位數不足自動用空格填充來達到其最大長度。如非NULL的CHAR(12)總是包含12位元組資訊。CHAR欄位最多可以儲存2,000位元組的
資訊。
• VARCHAR2:目前這也是VARCHAR 的同義詞。這是一個變長字串,與CHAR 型別不同,它不會用空格填充至最大長度。VARCHAR2(12)可能包含0~
12位元組的資訊。VARCHAR2最多可以儲存4,000 位元組的資訊。
CHAR和VARCHAR2的比較
CHAR(4) “A“ 實際在資料庫中儲存為"A “
“ABCDE”超長報錯
VARCHAR2(4) “A” 儲存的還是“A”
“ABCDE”超長報錯
漢字:每個漢字佔多少位元組,要看具體的編碼方式,如UTF-8(1-3位元組)、
GB2312(2位元組)、GBK(2位元組)、GB18030(1、2、4位元組)
2、數字型別
• NUMBER:該資料型別能儲存精度最多達38位的數字。每個數儲存在一個變長欄位中,其長度在0~22位元組之間。Oracle的NUMBER型別精度很高, 遠遠高於許多程式語言中常規的FLOAT和DOUBLE型別。
NUMBER( p,s ) p表示精度(總長度) s表示小數位置且四捨五入
NUMBER(10,3) 10是總長度,3是小數位數的長度
123.456
123.4567 :將儲存為123.457
12345679.899 :精度超長了,10是總長度,3是小數位, 整數位為10-3=7位
NUMBER(10)==NUMBER(10,0) java.lang.Integer
NUMBER(19)==NUMBER(19,0) java.lang.Long
3、日期型別
• DATE:一個7位元組的定寬日期/時間資料型別。其中總包含7個屬性,包括:世紀、世紀中哪一年、月份、月中的哪一天、小時、分鐘和秒。
• TIMESTAMP:一個7 位元組或12.位元組的定寬日期/時間資料型別。它與DATE 資料型別不同,因為TIMESTAMP 可以包含小數秒(fractional second);帶小數秒的TIMESTAMP 在小數點右邊最多可以保留9位。
4、二進位制及大文字資料
• BLOB: (binary large object)在Oracle9i及以前的版本中, 這種資料型別允許儲存最多4GB的資料, 在Oracle 10g及以後的版本中允許儲存最多(4GB)×(資料庫塊大小)位元組的資料。BLOB包含不需要進行字符集轉換的“二進位制“資料,如果要儲存電子表格、字處理文件、影象檔案等就很適合採用
• CLOB:(Character Large Object)在Oracle9i及以前的版本中, 這種資料型別允許儲存最多4GB的資料, 在Oracle 10g及以後的版本中允許儲存最多(4GB)×(資料庫塊大小)位元組的資料。CLOB包含要進行字符集轉換的資訊。這種資料型別很適合儲存純文字資訊。