Oracle常用的數據庫字段類型如下:
字段類型 |
中文說明 |
限制條件 |
其它說明 |
CHAR |
固定長度字符串 |
最大長度2000 bytes |
|
VARCHAR2 |
可變長度的字符串 |
最大長度4000 bytes |
可做索引的最大長度749 Byte/char,默認情況用的是Byte |
NCHAR |
根據字符集而定的固定長度字符串 |
最大長度2000 bytes |
|
NVARCHAR2 |
根據字符集而定的可變長度字符串 |
最大長度4000 bytes |
|
DATE |
日期(日-月-年) |
DD-MM-YY(HH-MI-SS) |
經過嚴格測試,無千蟲問題 |
LONG |
超長字符串 |
最大長度2G(231-1) |
足夠存儲大部頭著作 |
RAW |
固定長度的二進制數據 |
最大長度2000 bytes |
可存放多媒體圖象聲音等 |
LONG RAW |
可變長度的二進制數據 |
最大長度2G |
同上 |
BLOB |
二進制數據 |
最大長度4G |
|
CLOB |
字符數據 |
最大長度4G |
|
NCLOB |
根據字符集而定的字符數據 |
最大長度4G |
|
BFILE |
存放在數據庫外的二進制數據 |
最大長度4G |
|
ROWID |
數據表中記錄的唯一行號 |
10 bytes ********.****.****格式,*為0或1 |
|
NROWID |
二進制數據表中記錄的唯一行號 |
最大長度4000 bytes |
|
NUMBER(P,S) |
數字類型 |
P為整數位,S為小數位 |
|
DECIMAL(P,S) |
數字類型 |
P為整數位,S為小數位 |
|
INTEGER |
整數類型 |
小的整數 |
|
FLOAT |
浮點數類型 |
NUMBER(38),雙精度 |
|
REAL |
實數類型 |
NUMBER(63),精度更高 |
|
From <http://blog.sina.com.cn/s/blog_4ea1df2801007s99.html>
- VARCHAR2 - Byte vs char
一個英文字母,一個數字,一個符號各占一個字節。一個漢字占兩個字節。
CREATE TABLE TEST(
NAME VARCHAR2(2)
)
INSERT INTO TEST VALUES('測試');
在Windows環境下:
報錯信息:實際值4, 最大值2
可見在Windows默認情況下,VARCHAR2(2) 就等於是 VARCHAR2(2 BYTE) 一個漢字占2個字節
在Linux環境下:
報錯信息:實際值6,最大值2
可見在Linux默認情況下,VARCHAR2(2) 就等於是 VARCHAR2(2 BYTE) 一個漢字占3個字節
如果建表文改為:
CREATE TABLE TEST(
NAME VARCHAR2(2 CHAR)
)
INSERT INTO TEST VALUES('測試'); 在Windows和Linux下都可以執行成功。
From <http://www.linuxidc.com/Linux/2011-04/35276.htm>