| Oracle | DB2/400 | 備註 |
|---|---|---|
| DATE | DATE, TIME, TIMESTAMP | Oracle DATE 含年月日時分秒;DB2 DATE 僅年月日,TIME 含時分秒。僅日期用 DATE,僅時間用 TIME,日期時間合用 TIMESTAMP。可用 TO_CHAR 拆分對應。 |
| VARCHAR2(n), n≤4000 | CHAR(n), VARCHAR(n) | n≤32766 用 CHAR/VARCHAR。 |
| LONG, n≤2GB | VARCHAR(n), CLOB(n) | n≤32K 用 CHAR/VARCHAR;32K~2GB 用 CLOB。 |
| RAW, LONG RAW, n≤255 | CHAR(n) FOR BIT DATA, VARCHAR(n) FOR BIT DATA | |
| BLOB, n≤4GB | BLOB(n) | n≤2GB 用 BLOB。 |
| CLOB, n≤4GB | CLOB(n) | n≤2GB 用 CLOB。 |
| NCLOB, n≤4GB | DBCLOB(n) | n≤2GB 用 DBCLOB(n/2)。 |
| NUMBER | SMALLINT/INTEGER/BIGINT, DECIMAL(p,s), FLOAT/REAL/DOUBLE | 視精度、小數位、儲存空間選擇。NUMBER(p)→整數類型;NUMBER(p,s)→DECIMAL;無精度→FLOAT。 |
Oracle NUMBER 儲存空間依定義而異(預設精度 38 位佔 20 bytes)。DB2 整數類型:SMALLINT 2B、INTEGER 4B、BIGINT 8B。對應時需兼顧精度與空間效率。
Oracle BLOB/CLOB/NCLOB 上限 4GB;DB2 BLOB/CLOB 上限 2GB、DBCLOB 對應 NCLOB。Oracle BFILE 對應 DB2 DATALINK(外部檔案參考)。
兩者皆有 ROWID 偽欄位唯一標識列。DB2 ROWID 佔 40 bytes,無 CCSID 屬性,不含檔案/區塊/列資訊。建表範例:
CREATE TABLE LIBRARYNAME/ORDERS2 ( ORDERNO ROWID, SHIPPED_TO VARCHAR(36), ORDER_DATE DATE );
插入時系統自動產生值,可用 Operations Navigator 檢視。
DB2 CHAR/VARCHAR 對應 Oracle VARCHAR2(n) (n<4000)。小字串建議用定長 CHAR 提升效能;用 VARCHAR 時加 ALLOCATE 參數減少 I/O。中文儲存需指定 CCSID 935 (簡體) 或 937 (繁體)。