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

Oracle 與 DB2 數據類型映射全對照表:遷移開發必備速查手冊

     編輯:DB2 教學

核心差異:日期時間類型拆分

Oracle DATE 含「年月日時分秒」;DB2 拆分為 DATE(年月日)、TIME(時分秒)、TIMESTAMP(年月日時分秒.微秒)。遷移必須按業務語義拆分或合併。

完整類型映射對照表

OracleDB2 (LUW)DB2 for i (DB2/400)遷移注意事項
DATETIMESTAMP (推薦)
DATE + TIME (分離)
DATE + TIME
TIMESTAMP
用 TO_CHAR(date_col, 'YYYY-MM-DD') 對應 DB2 DATE
用 TO_CHAR(date_col, 'HH24:MI:SS') 對應 DB2 TIME
TIMESTAMPTIMESTAMP / TIMESTAMP(12)TIMESTAMP精度對齊:Oracle 6 位微秒,DB2 默認 6 位,可擴至 12
VARCHAR2(n) n≤4000VARCHAR(n) n≤32672VARCHAR(n) n≤32740DB2 上限大得多,直接映射;超長用 CLOB
CHAR(n) n≤2000CHAR(n) n≤254CHAR(n) n≤254定長字符 DB2 上限較小,超長改 VARCHAR
LONGCLOB / VARCHAR(32672)CLOB / VARCHAR(32740)Oracle LONG 已棄用,遷移統一用 CLOB
CLOBCLOB (1GB~2GB)CLOB (2GB)直接映射;注意 DB2 CLOB 存儲需大表空間
BLOBBLOBBLOB直接映射
RAW(n) / LONG RAWBLOB / VARCHAR(n) FOR BIT DATABLOB / VARCHAR FOR BIT DATA二進制數據用 BLOB;小片段可用 FOR BIT DATA
NUMBER(p,s)DECIMAL(p,s) / NUMERIC(p,s)DECIMAL(p,s) / NUMERIC(p,s)精度/標度完全對應;純整數用 SMALLINT/INT/BIGINT
NUMBER (無精度)DECIMAL(31,*) / DOUBLEDECIMAL(31,*) / DOUBLE按業務實際精度收窄;浮點運算用 DOUBLE/REAL
FLOAT(n) / BINARY_FLOAT/DOUBLEDOUBLE / REALDOUBLE / REALIEEE 754 雙精度/單精度
ROWID / UROWIDROWID (隱含)ROWIDDB2 隱含 RID,不直接暴露;遷移忽略或用主鍵替代
XMLTYPEXML (pureXML)XML功能對等,DB2 pureXML 支援 XQuery/索引更強

特殊類型處理指南

1. NUMBER 精度收窄策略

-- Oracle: NUMBER(10,2)  -- 金額
-- DB2:  DECIMAL(10,2)    -- 精確對應

-- Oracle: NUMBER(38)     -- 大整數
-- DB2:  BIGINT           -- -9.22E18 ~ 9.22E18,性能最優
-- 或 DECIMAL(31,0)       -- 超大整數

-- Oracle: NUMBER         -- 浮點
-- DB2:  DOUBLE           -- 8 字節雙精度

2. 字符語義差異

  • Oracle VARCHAR2(100 CHAR) 按字符計長;DB2 VARCHAR(100) 按字節 (UTF-8 下 1 中文=3 字節)。
  • 遷移時:VARCHAR2(n CHAR) → VARCHAR(n * 3) (UTF-8) 或啟用 CODEUNITS32 (V10.5+) 按字符計長。

3. 空值與空字符串

Oracle '' = NULL;DB2 '' ≠ NULL (空串)。遷移時:

  • 應用層統一「無值」寫 NULL
  • 或在 DB2 建 CHECK (col <> '' OR col IS NULL) 約束

自動化遷移工具鏈

  1. IBM Migration Toolkit (MTK):免費圖形化工具,支援 Schema/DDL/數據/存儲過程轉換,生成映射報告。
  2. db2move + db2look:命令行導出/導入,配合 sed/awk 批量替換類型。
  3. SQLines / Ora2Pg:開源跨平台遷移腳本,適合輕量級項目。

驗證清單

  1. 所有 DATE/TIMESTAMP 列業務語義對齊 (時區、精度)
  2. 字符列長度滿足多語言存儲 (UTF-8 ×3 安全系數)
  3. 數值精度/標度無截斷風險
  4. LOB 列存儲路徑、緩衝池、日誌空間預留
  5. 應用層 PreparedStatement 參數綁定類型匹配

建立標準化類型映射字典,納入遷移項目「定義階段」交付物,可消除 90% 類型相關缺陷。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved