教你如何將Oracle數(shù)據(jù)庫(kù)轉(zhuǎn)換為SQL Server(2011-03-20 14:36:44)
(轉(zhuǎn)發(fā))近期為公司的一個(gè)項(xiàng)目數(shù)據(jù)庫(kù)進(jìn)行了轉(zhuǎn)換,將Oracle的Db轉(zhuǎn)換為SqlServer(2000或2005均可),一開始在網(wǎng)上找了一些資料,發(fā)現(xiàn)有個(gè)工具叫SwisSql的,嘗試了一下,沒成功,繼續(xù)查找.后來(lái)經(jīng)同事提醒,使用SqlServer的導(dǎo)入和導(dǎo)出工具,嘗試一下,確實(shí)可以轉(zhuǎn)換.操作步驟如下所述. 所需要的環(huán)境比較簡(jiǎn)單,就是本機(jī)可以同時(shí)連接Oracle和SqlServer即就,注意:這里不必為Oracle數(shù)據(jù)庫(kù)建立ODBC,采用直連方式即可,需要新建一個(gè)SqlServer數(shù)據(jù)庫(kù),用于加載Oracle的數(shù)據(jù).下面以SqlServer2005為例 步驟1 打開Sqlserver,如圖-1,選中目標(biāo)數(shù)據(jù)庫(kù),右鍵->任務(wù)->導(dǎo)入數(shù)據(jù)
步驟2: 選擇”導(dǎo)入數(shù)據(jù)”菜單,會(huì)出現(xiàn)向?qū)?點(diǎn)擊下一步,出現(xiàn)如圖-2所示界面
圖-2 這里要說(shuō)明下,最好選擇”MicroSoft OLE DB Provider for Oracle方式,選擇另外一種方式導(dǎo)入數(shù)據(jù)時(shí)會(huì)報(bào)錯(cuò). 輸入服務(wù)器名稱和用戶密碼,測(cè)試成功后,一定要勾選”允許保存密碼” 步驟3 此步驟就是選擇目標(biāo)數(shù)據(jù)庫(kù),如圖-3所示
圖-3 步驟4 導(dǎo)入數(shù)據(jù)有兩種方式,一種方式是可視化選擇Db表或視圖;另一種方式是通過(guò)sql語(yǔ)句實(shí)現(xiàn),一般批量導(dǎo)入選擇第一種方式
圖-4 步驟5 此步驟就是選擇我們需要導(dǎo)入的Db對(duì)象,如圖-5所示
圖-5 這里說(shuō)明一下,如果oracle中表的列數(shù)據(jù)類型沒有匹配成功,可以直接點(diǎn)擊”編輯”按鈕,直接編輯即可 選擇好導(dǎo)入Db對(duì)象以后,點(diǎn)擊”下一步”或”完成”,就開始導(dǎo)入.一般來(lái)說(shuō),如果數(shù)據(jù)比較正常,不是特殊的Oracle數(shù)據(jù),都是可以導(dǎo)入的. 下面說(shuō)下我操作過(guò)程中遇到的問題,希望給大家有所提醒 1. 導(dǎo)入以后的Db表,可能主鍵或外鍵會(huì)丟失,需要我們自己去創(chuàng)建主鍵,自己寫sql語(yǔ)法實(shí)現(xiàn)就好了. 2. Oracle中blob或clob類型的數(shù)據(jù),在此處是無(wú)法導(dǎo)入的,需要我們手工寫代碼導(dǎo)入.比如表A,我們可以先用上述方法將非blog或clob字段的數(shù)據(jù)導(dǎo)進(jìn)來(lái),然后寫代碼,執(zhí)行update語(yǔ)句,將字段值寫入其中即可 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)該說(shuō),2005比2000要更加精確,無(wú)論是對(duì)數(shù)據(jù)還是對(duì)表結(jié)構(gòu) 總之,這次導(dǎo)入還是比較順利的,更重要的是比較簡(jiǎn)單,比使用第三方工具要方便很多,因此,有些需求的朋友推薦此方法
原文出處:http://www.cnblogs.com/xiyang1011/archive/2010/11/25/1888069.html |
|
來(lái)自: 給你帶來(lái)好運(yùn) > 《業(yè)務(wù)》