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

SQL Server 2005 透過匯入匯出精靈匯出資料至 Oracle 11g 完整步驟與型別對照

     編輯:關於SqlServer

    工具與驅動

    • SSMS 2005 → 右鍵資料庫 → 工作 → 匯出資料。
    • 資料來源:.Net Framework Data Provider for OLE DB 或 Microsoft OLE DB Provider for SQL Server。
    • 目的地:Microsoft OLE DB Provider for Oracle (需安裝 Oracle Client 11g)。

    逐步操作

    1. 選擇資料來源:伺服器名稱、驗證、資料庫。
    2. 選擇目的地:Provider 選 Microsoft OLE DB Provider for Oracle,輸入 TNS 服務名稱/連接字串、帳號密碼。
    3. 指定資料表複製或查詢:勾選資料表或撰寫查詢 (建議明確列出欄位)。
    4. 編輯對應 (關鍵):SQL Server 型別 → Oracle 型別手動調整:

    型別對照表 (必須手動修正)

    SQL ServerOracle 建議備註
    int / bigintNUMBER(10) / NUMBER(19)指定精度避免 NUMBER(*) 預設 38 位
    bitNUMBER(1)或 CHAR(1) 'Y'/'N'
    decimal(p,s)NUMBER(p,s)直接對應
    money / smallmoneyNUMBER(19,4) / NUMBER(10,4)
    float / realBINARY_DOUBLE / BINARY_FLOATOracle 10g+ 建議
    datetime / smalldatetimeDATEOracle DATE 含時分秒
    date (2008+)DATE
    time (2008+)INTERVAL DAY TO SECOND或 VARCHAR2
    datetime2 / datetimeoffsetTIMESTAMP / TIMESTAMP WITH TIME ZONE
    char / varcharCHAR / VARCHAR2長度相同
    nchar / nvarcharNCHAR / NVARCHAR2Unicode,精靈預設只給 VARCHAR2,需手動改
    text / ntextCLOB / NCLOB大物件
    image / varbinary(max)BLOB
    uniqueidentifierRAW(16)或 CHAR(36) 存字串
    1. 檢查警告:datetime → DATE 會出現截斷/精度警告,可勾選「忽略錯誤/截斷」繼續。
    2. 執行封裝:完成精靈 → 立即執行或儲存 .dtsx 供排程。

    驗證結果

    • Oracle Enterprise Manager / SQL Developer 查詢目標表筆數、抽樣資料。
    • 對照來源筆數、關鍵欄位總和 (如金額 SUM) 確認完整性。

    進階:直接編輯 SQL (而非資料表複製)

    精靈「指定資料表複製或查詢」步驟選 撰寫查詢,可撰寫 PL/SQL 風格的 INSERT INTO ... SELECT ...,掌控轉換邏輯 (如 TO_DATE, CAST)。

    常見問題

    • OLE DB Provider for Oracle 不支援 Oracle 12c+ 部分鍵特性:改用 Oracle Provider for OLE DB (OraOLEDB.Oracle) 或 ODBC Driver for Oracle。
    • 長字串截斷:VARCHAR2(4000) 上限,超過需用 CLOB 並以 DBMS_LOB 寫入。
    • 編碼亂碼:確認 NLS_LANG 環境變數 (如 TRADITIONAL CHINESE_TAIWAN.ZHT16MSWIN950 或 AL32UTF8)。

    結語

    SSMS 匯入匯出精靈配合 OLE DB Provider 可快速完成 SQL Server → Oracle 異構遷移,**關鍵在型別手動對照 (特別是 nvarchar→NVARCHAR2、datetime→DATE、大物件→CLOB/BLOB)**。大量資料建議分批、並行、使用 BULK INSERT/SQL*Loader 或 Data Pump 獲得更高效能。

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