建表時正確選擇資料類型,關係儲存空間、效能與資料完整性。Oracle 核心類型分五大類,另含偽欄位 ROWID。
一、字元類型
| 類型 | 長度 | 特性 | 適用場景 |
| CHAR(n) | 固定 1~2000 bytes | 不足補空白;比較時空白語意 | 固定長代碼 (國別、幣別、Y/N) |
| VARCHAR2(n) | 變動 1~4000 bytes | 實際長度儲存;最常用 | 一般文字、名稱、描述 |
| NCHAR(n) | 固定 1~2000 bytes (字元數) | 依國家字元集 (AL16UTF16/UTF8) | 多語系固定長欄位 |
| NVARCHAR2(n) | 變動 1~4000 bytes (字元數) | 同上 | 多語系變長文字 |
| LONG | 變動 2GB | 已棄用,單表僅一欄,功能受限 | 遷移至 CLOB/NCLOB |
二、數值類型
NUMBER(p,s):精度 p (1~38),小數位 s (-84~127)。涵蓋整數、定點、浮點。
整數常用 NUMBER(10) 或 INTEGER (ANSI 相容別名)。
三、日期時間類型
DATE:世紀、年、月、日、時、分、秒 (預設 DD-MON-YY)。
TIMESTAMP[(precision)]:增加毫秒/微秒精度。
TIMESTAMP WITH TIME ZONE:含時區位移。
TIMESTAMP WITH LOCAL TIME ZONE:自動轉換至 Session 時區。
四、大型物件 (LOB)
| 類型 | 儲存位置 | 最大長度 | 用途 |
| BLOB | 資料庫內部 | 4GB | 二進位:圖片、音訊、視訊 |
| CLOB | 資料庫內部 | 4GB | 單一位元組字元大文本 |
| NCLOB | 資料庫內部 | 4GB | 多位元組字元大文本 |
| BFILE | 作業系統檔案 (唯讀) | 4GB | 外部大型二進位檔,DB 只存指標 |
五、原始/舊制類型 (逐步淘汰)
RAW(n):變長二進位,最大 2000 bytes (PL/SQL 32KB) → 改用 BLOB。
LONG RAW:2GB 二進位 → 改用 BLOB。
六、特殊偽欄位
ROWID:每列唯一物理地址編碼,最快存取路徑。
ROWNUM:查詢結果集順序號 (1-based)。
七、選型決策樹
- 純文字、< 4000 bytes →
VARCHAR2。
- 固定長代碼 →
CHAR。
- 多語系 →
NVARCHAR2/NCLOB。
- 數值運算 →
NUMBER。
- 日期時間精度需求 →
TIMESTAMP 系列。
- 大文本/二進位 →
CLOB/BLOB;外部檔案 → BFILE。