近期為公司的一個項目資料庫進行了轉換,將Oracle的Db轉換為SqlServer(2000或2005均可),一開始在網上找了一些資料,發現有個工具叫SwisSql的,嘗試了一下,沒成功,繼續尋找.後來經同事提醒,使用SqlServer的匯入和匯出工具,嘗試一下,確實可以轉換.操作步驟如下所述.
所需要的環境比較簡單,就是本機可以同時串連Oracle和SqlServer即就,注意:這裡不必為Oracle資料庫建立ODBC,採用直連方式即可,需要建立一個SqlServer資料庫,用於載入Oracle的資料.下面以SqlServer2005為例
l 步驟1
開啟Sqlserver,-1,選中目標資料庫,右鍵->任務->匯入資料
圖-1
l 步驟2:
選擇”匯入資料”菜單,會出現嚮導,點擊下一步,出現-2所示介面
圖-2
這裡要說明下,最好選擇”MicroSoft OLE DB Provider for Oracle方式,選擇另外一種方式匯入資料時會報錯.
輸入伺服器名稱和使用者密碼,測試成功後,一定要勾選”允許儲存密碼”
l 步驟3
此步驟就是選擇目標資料庫,-3所示
圖-3
步驟4
匯入資料有兩種方式,一種方式是可視化選擇Db表或視圖;另一種方式是通過sql語句實現,一般大量匯入選擇第一種方式
圖-4
l 步驟5
此步驟就是選擇我們需要匯入的Db對象,-5所示
圖-5
這裡說明一下,如果oracle中表的列資料類型沒有匹配成功,可以直接點擊”編輯”按鈕,直接編輯即可
選擇好匯入Db對象以後,點擊”下一步”或”完成”,就開始匯入.一般來說,如果資料比較正常,不是特殊的Oracle資料,都是可以匯入的.
下面說下我操作過程中遇到的問題,希望給大家有所提醒
1. 匯入以後的Db表,可能主鍵或外鍵會丟失,需要我們自己去建立主鍵,自己寫sql文法實現就好了.
2. Oracle中blob或clob類型的資料,在此處是無法匯入的,需要我們手工寫代碼匯入.比如表A,我們可以先用上述方法將非blog或clob欄位的資料導進來,然後寫代碼,執行update語句,將欄位值寫入其中即可
3. 如果資料格式不符合條件,也不是不可以的,比如日期型欄位,oracle中可能這樣也會儲存0200-9-12,匯入時這行資料就會報錯,因為不符合日期類型格式,需要調整.
4. Oracle轉換至SqlServer2000或SqlServer2005,所產生的結果是不一樣的,這個大家要注意.應該說,2005比2000要更加精確,無論是對資料還是對錶結構
總之,這次匯入還是比較順利的,更重要的是比較簡單,比使用第三方工具要方便很多,因此,有些需求的朋友推薦此方法