iT邦幫忙

0

Oracle 匯資料到SQL2005 錯誤

lukechang 9 年前14589 瀏覽

請問熟悉 SQL2005 的大德 有沒有下列類似的經歷 感謝
SQL2005 由 Oracle 匯資料 欄位已開到 Varchar(500) 還是會出現下列錯誤訊息

  • 正在執行 (錯誤)
    訊息
    錯誤 0xc02020c5: 資料流程工作: 將資料行 "LTXA1" (50) 轉換成資料行 "LTXA1" (125) 時,資料轉換失敗。轉換傳回狀態值 4 和狀態文字 "文字已截斷,或者一或多個字元在目標字碼頁裡沒有相符者。"。
    (SQL Server 匯入和匯出精靈)

錯誤 0xc020902a: 資料流程工作: 因為發生截斷,且 "輸出資料行 "LTXA1" (125)" 的截斷資料列配置指定在截斷時失敗,所以 "輸出資料行 "LTXA1" (125)" 失敗。在指定的元件上,指定的物件發生截斷錯誤。
(SQL Server 匯入和匯出精靈)

錯誤 0xc0047022: 資料流程工作: 在元件 "資料轉換 1" (81) 上的 ProcessInput 方法失敗,錯誤碼為 0xC020902A。識別的元件從 ProcessInput 方法傳回錯誤。此錯誤是元件特定的錯誤,但屬於嚴重錯誤,將導致資料流程工作停止執行。
(SQL Server 匯入和匯出精靈)

錯誤 0xc0047021: 資料流程工作: 執行緒 "WorkThread0" 已結束,錯誤碼為 0xC020902A。
(SQL Server 匯入和匯出精靈)

1 個回答

31
richardsuma
iT邦高手 1 級 ‧ 9 年前
最佳解答
  1. 建議 lukechang 使用 DTS 時, 不要用先建立 table ,
    讓 DTS 幫你建立table, 不然會發生你所說得問題.
  2. 將 oracle 的資料先匯出成 excel檔 或 csv檔,
    在透過 SQL server 提供的 DTS 轉入到你建好的table.
    這樣子你比較好確認會出的資料是否正確, 另一方面,
    比較好轉入 SQL server.
  3. 如果你有空 就用 SQL 提供的 Transact-SQL 寫成像 PL/SQL
    的指令, 到時候你就可以重複使用這個sql statement.
看更多先前的回應...收起先前的回應...
lukechang iT邦研究生 1 級 ‧ 9 年前 檢舉

感謝您的回覆
我用SSIS 建立table 也是會發生一樣的問題

您用的是SQL 2000 的DTS 嗎?
SQL 2000 的DTS 我試過沒有這個問題

richardsuma iT邦高手 1 級 ‧ 9 年前 檢舉
  1. 如果用SQL Server 匯入和匯出精靈, 先將 oracle 匯至 文字檔.
    文字檔的內容與你SQL 2005的table 欄位型態與格式是否符合.

  2. 如果先將 oracle 資料轉至 文字檔, 再將文字檔轉入 SQL 2005 資料庫,
    是否正常?

lukechang iT邦研究生 1 級 ‧ 9 年前 檢舉

結果我試出來了
將 匯入欄位的格式 改成ntext 就可以了

richardsuma iT邦高手 1 級 ‧ 9 年前 檢舉

恭喜你了!

我要發表回答

立即登入回答