首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 教學

Oracle 資料類型完整指南:從 CHAR 到 BINARY_DOUBLE 的 22 種類型詳解

     編輯:Oracle 教學

Oracle 資料類型完整指南:22 種核心類型詳解

掌握資料類型是資料庫設計、效能調校與避坑的基礎。本文系統整理 Oracle 22 種核心資料類型的定義、儲存特性、長度限制、適用場景與建表範例。

字元類型

類型最大長度特性適用場景
CHAR(n)2000 bytes固定長度,不足右補空格固定長度代碼(如國家代碼、Y/N 旗標)
VARCHAR2(n)4000 bytes可變長度,不補空格一般文字資料,首選類型
NCHAR(n)2000 bytesUnicode 固定長度多語系固定長度欄位
NVARCHAR2(n)4000 bytesUnicode 可變長度多語系可變長度欄位

字元語意:VARCHAR2(20 CHAR) 指定字元數而非位元組,支援 UTF8/AL32UTF8 多位元組字元集。

數值類型

類型精度/範圍儲存特性範例
NUMBER(p,s)p=1~38, s=-84~127可變長度科學標記法,1 byte 指數 + 最多 20 bytes 尾數NUMBER(5,2) 存 123.45
BINARY_FLOAT32-bit IEEE 7545 bytes,單精度浮點數科學計算、近似值
BINARY_DOUBLE64-bit IEEE 7549 bytes,雙精度浮點數高精度科學計算

日期時間類型

類型精度時區支援備註
DATE秒無7 bytes,含世紀、年、月、日、時、分、秒
TIMESTAMP奈秒 (9 位)無9i+,精度可調
TIMESTAMP WITH TIME ZONE奈秒有含時區位移
TIMESTAMP WITH LOCAL TIME ZONE奈秒資料庫標準化查詢時自動轉為 Session 時區
INTERVAL YEAR TO MONTH月—5 bytes,期間運算
INTERVAL DAY TO SECOND奈秒—11 bytes,精細期間運算

大物件 (LOB) 類型

類型最大容量用途備註
CLOB(4GB-1) * DB_BLOCK_SIZE字元大物件取代 LONG
NCLOB同 CLOBUnicode 字元大物件NLS 字元集
BLOB同 CLOB二進位大物件圖片、影音、文件
BFILE4GB外部檔案定位器唯讀,檔案在 OS 層

原始與特殊類型

  • RAW(n) / LONG RAW:二進位資料,上限 2000/2GB,建議改用 BLOB。
  • ROWID / UROWID:物理/邏輯列地址,10/4000 bytes。

已棄用/相容性類型

  • LONG / LONG RAW:單表僅一欄、不支援索引、函數、WHERE 條件受限;請遷移至 LOB。
  • VARCHAR:同 VARCHAR2,保留為相容性,勿使用。

資料壓縮與儲存優化

  • CREATE TABLE ... COMPRESS / ALTER TABLE ... MOVE COMPRESS:僅限直載作業 (CTAS、Direct-path INSERT、SQL*Loader Direct) 有效;UPDATE 不重新壓縮。
  • 混合使用 NULL 欄位置於表尾,Oracle 以位圖壓縮連續 NULL,節省空間。

選型口訣

  1. 文字優先 VARCHAR2,固定長度才用 CHAR。
  2. 多語系用 NVARCHAR2,指定 CHAR 語意。
  3. 金額、精確計算用 NUMBER(p,s);科學近似值用 BINARY_DOUBLE。
  4. 日期時間新系統統一用 TIMESTAMP WITH LOCAL TIME ZONE。
  5. 大文本/二進位一律用 CLOB/BLOB,拒絕 LONG。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved