首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Oracle 與 DB2/400 資料型別對應完整對照表與遷移指南

     編輯:Oracle 資料庫相關知識

核心原則

型別對應為一對多,實際選型需視具體業務精度、長度、儲存空間而定。下表列出主要對應關係與關鍵注意事項。

日期時間類

OracleDB2/400注意事項
DATE(含年月日時分秒)DATE(僅年月日)
TIME(時分秒)
TIMESTAMP(日期時間)
Oracle DATE 需拆分對應:
• 僅日期 → DB2 DATE
• 僅時間 → DB2 TIME
• 日期時間 → DB2 TIMESTAMP
• 可用 TO_CHAR() 取字串分別匹配

字串類

OracleDB2/400條件/建議
VARCHAR2(n), n ≤ 4000CHAR(n) / VARCHAR(n)n ≤ 32766 時優先用 CHAR(定長)提升效能、節省空間;用 VARCHAR 時加 ALLOCATE 參數減少 I/O
LONG (≤ 2GB)VARCHAR(n) / CLOB(n)n ≤ 32K 用 CHAR/VARCHAR;32K < n ≤ 2GB 用 CLOB
CLOB (≤ 4GB)CLOB(n)n ≤ 2GB 用 CLOB(n)

二進位/LOB 類

OracleDB2/400條件
RAW / LONG RAW (≤ 255/2GB)CHAR(n) FOR BIT DATA / VARCHAR(n) FOR BIT DATA / BLOB(n)≤ 32K 用 BIT DATA 類型;> 32K 用 BLOB
BLOB (≤ 4GB)BLOB(n)n ≤ 2GB 用 BLOB(n)
NCLOB (≤ 4GB)DBCLOB(n)n ≤ 2GB 用 DBCLOB(n/2)

數值類

OracleDB2/400選型邏輯
NUMBER(p) / NUMBER(p,s)SMALLINT / INTEGER / BIGINT / DECIMAL(p,s)• 整數:依範圍選 SMALLINT(2B)、INTEGER(4B)、BIGINT(8B)
• 定點小數:DECIMAL(p,s)
• 浮點/未指定精度:FLOAT(n)/REAL/DOUBLE
NUMBER(無精度,預設 38 位,佔 20 bytes)視實際用途決定遷移前必須分析實際資料範圍,避免空間浪費或精度遺失

特殊類型

  • ROWID:Oracle ROWID ↔ DB2 ROWID(40 bytes,無 CCSID、無 datafile/block/row 資訊)。DB2 建表時 ORDERNO ROWID 可自動生成唯一值。
  • BFILE:Oracle 外部二進位檔 ↔ DB2 DATALINK。
  • 中文編碼:DB2 建表指定 CCSID 935(簡體)或 937(繁體)支援中文輸入。

遷移實務建議

  1. 先用工具(如 Oracle SQL Developer Migration Workbench)自動生成對應 DDL。
  2. 人工審核每個 NUMBER 欄位,根據業務精度縮映至最緊湊的 DB2 整數/定點型別。
  3. 長字串/LOB 欄位評估實際最大長度,選擇 VARCHAR/CLOB/BLOB 界限值。
  4. 日期時間欄位拆分對應,驗證 TO_CHAR 格式字串與 DB2 格式一致。
  5. 測試階段大量資料導入,關注截斷、溢位、編碼錯誤。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved