| SQL Server | Oracle 建議 | 備註 |
|---|---|---|
| int / bigint | NUMBER(10) / NUMBER(19) | 指定精度避免 NUMBER(*) 預設 38 位 |
| bit | NUMBER(1) | 或 CHAR(1) 'Y'/'N' |
| decimal(p,s) | NUMBER(p,s) | 直接對應 |
| money / smallmoney | NUMBER(19,4) / NUMBER(10,4) | |
| float / real | BINARY_DOUBLE / BINARY_FLOAT | Oracle 10g+ 建議 |
| datetime / smalldatetime | DATE | Oracle DATE 含時分秒 |
| date (2008+) | DATE | |
| time (2008+) | INTERVAL DAY TO SECOND | 或 VARCHAR2 |
| datetime2 / datetimeoffset | TIMESTAMP / TIMESTAMP WITH TIME ZONE | |
| char / varchar | CHAR / VARCHAR2 | 長度相同 |
| nchar / nvarchar | NCHAR / NVARCHAR2 | Unicode,精靈預設只給 VARCHAR2,需手動改 |
| text / ntext | CLOB / NCLOB | 大物件 |
| image / varbinary(max) | BLOB | |
| uniqueidentifier | RAW(16) | 或 CHAR(36) 存字串 |
datetime → DATE 會出現截斷/精度警告,可勾選「忽略錯誤/截斷」繼續。.dtsx 供排程。精靈「指定資料表複製或查詢」步驟選 撰寫查詢,可撰寫 PL/SQL 風格的 INSERT INTO ... SELECT ...,掌控轉換邏輯 (如 TO_DATE, CAST)。
VARCHAR2(4000) 上限,超過需用 CLOB 並以 DBMS_LOB 寫入。TRADITIONAL CHINESE_TAIWAN.ZHT16MSWIN950 或 AL32UTF8)。SSMS 匯入匯出精靈配合 OLE DB Provider 可快速完成 SQL Server → Oracle 異構遷移,**關鍵在型別手動對照 (特別是 nvarchar→NVARCHAR2、datetime→DATE、大物件→CLOB/BLOB)**。大量資料建議分批、並行、使用 BULK INSERT/SQL*Loader 或 Data Pump 獲得更高效能。