Oracle 9i中提供強大的遷移功能,可以從多種數據庫向Oracle遷移數據。Oracle新發行的遷移工具提供了從Access 2000向Oracle 92010遷移的簡便易行的解決方案,該方案克服了中文亂碼問題和字符串被截斷的問題,如下就是從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平台遷移的插件,二者的最新版本都是92012。首先把OMWB安裝到與Oracle不同的主目錄中,然後安裝Access插件到同一目錄。
二、為遷移准備數據源
到OMWB主目錄的\Omwb\msaccess_exporter目錄下,打開omwb2000.mde文件,輸入將要遷移的Access數據庫文件和即將生成的針對數據庫的XML描述文件,這時你回發現在與Access相同的路徑下生成了一個同名的XML文件,打開這個文件,其中記錄了Access數據庫的表的列和關系、視圖的定義。OMWB支持Access的中文表名和列名,但要注意在生成XML文件之前要先修改\Omwb\msAccess_exporter\schema.dtd文件,將首行的encoding=“ISO-8859-1”修改為encoding=“GBK”,然後在通過打開omwb2000.mde文件為數據庫生成XML文件,這時表名和列名就成功顯示中文了,在遷移到Oracle之前,還要用同樣方法修改生成的XML文件的編碼為encoding=“GBK”。
三、運行OMWB執行遷移過程
運行OMWB,根據提示,輸入Access數據庫的描述文件,即上一步生成的XML文件,根據該文件為遷移生成數據源,該數據源包括表、索引、主鍵、關系和表驗證規則。接下來生成Oracle模型,OMWB自動生成表空間和兩個用戶。數據源和目標數據模型都存儲在Oracle的資料檔案庫裡,該庫由安裝OMWB工具時系統提示生成。下一步就可以執行遷移過程了,還可以為遷移生成腳本程序。
四、解決中文字符被截斷的問題
OMWB提供由數據源和目的的數據類型影射,修改該數據影射可以改變遷移目標的數據長度和類型,但我嘗試多次也沒能解決這個問題,包括在OMWB讀取XML文件生成的Access模型中修改源數據類型也無濟於事。問題在於Access本身。首先打開Access數據庫,修改其數據表中的數據類型和長度,保存數據庫後退出,再次為數據庫生成XML描述,這時我們會發現XML文件的表列定義改變了,重新運行OMWB,為遷移生成源數據模型後,源模型和目標模型的數據類型和長度也自動改變了,之後的遷移過程即可正確遷移長中文字符串了。Oracle提供的企業管理器和應用服務器的web形式界面裡存在幾處相同的問題,修改資料檔案庫根本不能解決問題,這也算是Oracle數據庫產品的圖形界面工具的缺陷