iT邦幫忙

0

Oracle 匯資料到SQL2005 錯誤

請問熟悉 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 級 ‧ 2008-08-01 12:53:08
最佳解答
  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 級 ‧ 2008-08-01 12:57:52 檢舉

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

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

  1. 如果用SQL Server 匯入和匯出精靈, 先將 oracle 匯至 文字檔.
    文字檔的內容與你SQL 2005的table 欄位型態與格式是否符合.

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

lukechang iT邦研究生 1 級 ‧ 2008-08-01 14:07:29 檢舉

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

恭喜你了!

我要發表回答

立即登入回答