2013-01-10 36 views
0

我有一個帶有一個表(30列,沒有BLOB或LOB)的Oracle數據庫, 5000萬條記錄。我需要將數據移入MSSQL。 MSSQL端的表結構將保持不變。移動大量數據的首選方法是什麼?導出然後導入或寫入一個小應用程序來執行加載?或其他方法(免費或商業工具)?在Oracle和MSSQL之間移動數百萬條記錄

+3

所有數據類型是否兼容?你看過SSIS嗎? – Raj

+4

一次?鏈接服務器,通過sql命令複製。 SQL Server:使用SSIS並建立一個完全免費的數據泵(它是SQL Server的一部分,無論如何)。 – TomTom

+0

Raj:類型是兼容的,只使用integer,date和varchar。 TomTom:這是一次性遷移。我關心的是如何在遷移過程中處理丟失的連接或錯誤?如何在出現錯誤時知道需要恢復的地方? – Daniel

回答

0

使用SQL Server Integration Services。一個簡單的數據流應該這樣做:將您的Oracle數據庫用作OLE DB源,將您的SQL Server數據庫用作OLE DB目標。

避免使用「SQL Server目標」。與使用OLE DB相比,我遇到了較慢的性能問題。

0

其中一個最好的方法是使用sqlplus和SPOOL從Oracle推送到文本文件並使用bcp實用程序加載到MSSQL。快速和強大:)

+0

嗯,除非你有回車數據或其他干擾預期文件格式的內容。 –

+0

您將始終有可能使用文本字段的引號;) – knagaev

+0

如何包含引號的文本字段?可能是奇數個,只有幾個逗號? :) –

0

50M在一張表是SSIS的一個簡單的任務。如果這是一次性任務,我不會嘗試其他任何事情。

相關問題