所需要的環(huán)境比較簡(jiǎn)單,就是本機(jī)可以同時(shí)連接Oracle和SqlServer即就,注意:這里不必為Oracle數(shù)據(jù)庫建立ODBC,采用直連方式即可,需要新建一個(gè)SqlServer數(shù)據(jù)庫,用于加載Oracle的數(shù)據(jù).下面以SqlServer2005為例
l 步驟1
打開Sqlserver,如圖-1,選中目標(biāo)數(shù)據(jù)庫,右鍵->任務(wù)->導(dǎo)入數(shù)據(jù)
圖-1
l 步驟2:
選擇”導(dǎo)入數(shù)據(jù)”菜單,會(huì)出現(xiàn)向?qū)?點(diǎn)擊下一步,出現(xiàn)如圖-2所示界面
圖-2
這里要說明下,最好選擇”MicroSoft OLE DB Provider for Oracle方式,選擇另外一種方式導(dǎo)入數(shù)據(jù)時(shí)會(huì)報(bào)錯(cuò).
輸入服務(wù)器名稱和用戶密碼,測(cè)試成功后,一定要勾選”允許保存密碼”
l 步驟3
此步驟就是選擇目標(biāo)數(shù)據(jù)庫,如圖-3所示
圖-3
步驟4
導(dǎo)入數(shù)據(jù)有兩種方式,一種方式是可視化選擇Db表或視圖;另一種方式是通過sql語句實(shí)現(xiàn),一般批量導(dǎo)入選擇第一種方式
圖-4
l 步驟5
此步驟就是選擇我們需要導(dǎo)入的Db對(duì)象,如圖-5所示
圖-5
這里說明一下,如果oracle中表的列數(shù)據(jù)類型沒有匹配成功,可以直接點(diǎn)擊”編輯”按鈕,直接編輯即可
選擇好導(dǎo)入Db對(duì)象以后,點(diǎn)擊”下一步”或”完成”,就開始導(dǎo)入.一般來說,如果數(shù)據(jù)比較正常,不是特殊的Oracle數(shù)據(jù),都是可以導(dǎo)入的.
下面說下我操作過程中遇到的問題,希望給大家有所提醒
1. 導(dǎo)入以后的Db表,可能主鍵或外鍵會(huì)丟失,需要我們自己去創(chuàng)建主鍵,自己寫sql語法實(shí)現(xiàn)就好了.
2. Oracle中blob或clob類型的數(shù)據(jù),在此處是無法導(dǎo)入的,需要我們手工寫代碼導(dǎo)入.比如表A,我們可以先用上述方法將非blog或clob字段的數(shù)據(jù)導(dǎo)進(jìn)來,然后寫代碼,執(zhí)行update語句,將字段值寫入其中即可
3. 如果數(shù)據(jù)格式不符合條件,也不是不可以的,比如日期型字段,oracle中可能這樣也會(huì)存儲(chǔ)0200-9-12,導(dǎo)入時(shí)這行數(shù)據(jù)就會(huì)報(bào)錯(cuò),因?yàn)椴环先掌陬愋透袷?需要調(diào)整.
4. Oracle轉(zhuǎn)換至SqlServer2000或SqlServer2005,所產(chǎn)生的結(jié)果是不一樣的,這個(gè)大家要注意.應(yīng)該說,2005比2000要更加精確,無論是對(duì)數(shù)據(jù)還是對(duì)表結(jié)構(gòu)
總之,這次導(dǎo)入還是比較順利的,更重要的是比較簡(jiǎn)單,比使用第三方工具要方便很多,因此,有些需求的朋友推薦此方法