Oracle 9i強(qiáng)大功能的體現(xiàn)
我們大家都知道Oracle 9i具有很強(qiáng)大功能,其中包括遷移功能,我們可從多種不同數(shù)據(jù)庫(kù)向Oracle進(jìn)行遷移數(shù)據(jù)。Oracle數(shù)據(jù)庫(kù)新發(fā)行的相關(guān)的遷移工具,其提供了從Access 2000向Oracle 92010遷移的簡(jiǎn)便易行的解決方案。
該方案克服了中文亂碼問題和字符串被截?cái)嗟膯栴},如下就是從Access 2000向Oracle 92010遷移的全過程。
一、下載***版本的OMWB(Oracle Migration Workbench)
并安裝到下載Oracle Migration Workbench Release 9.2.0.1.2 for MicrosoftWindows98/NT/2000/XP 和 從Access 2.0, 95, 97 or 2000 to 到Oracle平臺(tái)遷移的插件,二者的***版本都是92012。首先把OMWB安裝到與Oracle不同的主目錄中,然后安裝Access插件到同一目錄。
二、為遷移準(zhǔn)備數(shù)據(jù)源
到OMWB主目錄的\Omwb\msaccess_exporter目錄下,打開omwb2000.mde文件,輸入將要遷移的Access數(shù)據(jù)庫(kù)文件和即將生成的針對(duì)數(shù)據(jù)庫(kù)的XML描述文件,這時(shí)你回發(fā)現(xiàn)在與Access相同的路徑下生成了一個(gè)同名的XML文件,打開這個(gè)文件,其中記錄了Access數(shù)據(jù)庫(kù)的表的列和關(guān)系、視圖的定義。
OMWB支持Access的中文表名和列名,但要注意在生成XML文件之前要先修改\Omwb\msAccess_exporter\schema.dtd文件,將首行的encoding=“ISO-8859-1”修改為encoding=“GBK”,然后在通過打開omwb2000.mde文件為數(shù)據(jù)庫(kù)生成XML文件,這時(shí)表名和列名就成功顯示中文了,在遷移到Oracle 9i之前,還要用同樣方法修改生成的XML文件的編碼為encoding=“GBK”。
三、運(yùn)行OMWB執(zhí)行遷移過程
運(yùn)行OMWB,根據(jù)提示,輸入Access數(shù)據(jù)庫(kù)的描述文件,即上一步生成的XML文件,根據(jù)該文件為遷移生成數(shù)據(jù)源,該數(shù)據(jù)源包括表、索引、主鍵、關(guān)系和表驗(yàn)證規(guī)則。接下來生成Oracle模型,OMWB自動(dòng)生成表空間和兩個(gè)用戶。數(shù)據(jù)源和目標(biāo)數(shù)據(jù)模型都存儲(chǔ)在Oracle的資料檔案庫(kù)里,該庫(kù)由安裝OMWB工具時(shí)系統(tǒng)提示生成。
下一步就可以執(zhí)行遷移過程了,還可以為遷移生成腳本程序。
四、解決中文字符被截?cái)嗟膯栴}
OMWB提供由數(shù)據(jù)源和目的的數(shù)據(jù)類型影射,修改該數(shù)據(jù)影射可以改變遷移目標(biāo)的數(shù)據(jù)長(zhǎng)度和類型,但我嘗試多次也沒能解決這個(gè)問題,包括在OMWB讀取XML文件生成的Access模型中修改源數(shù)據(jù)類型也無濟(jì)于事。問題在于Access本身。
首先打開Access數(shù)據(jù)庫(kù),修改其數(shù)據(jù)表中的數(shù)據(jù)類型和長(zhǎng)度,保存數(shù)據(jù)庫(kù)后退出,再次為數(shù)據(jù)庫(kù)生成XML描述,這時(shí)我們會(huì)發(fā)現(xiàn)XML文件的表列定義改變了,重新運(yùn)行OMWB,為遷移生成源數(shù)據(jù)模型后,源模型和目標(biāo)模型的數(shù)據(jù)類型和長(zhǎng)度也自動(dòng)改變了,之后的遷移過程即可正確遷移長(zhǎng)中文字符串了。
Oracle 9i提供的企業(yè)管理器和應(yīng)用服務(wù)器的web形式界面里存在幾處相同的問題,修改資料檔案庫(kù)根本不能解決問題,這也算是Oracle數(shù)據(jù)庫(kù)產(chǎn)品的圖形界面工具的缺陷。
【編輯推薦】