近期在做SqlServer數(shù)據(jù)至Oracle數(shù)據(jù)的遷移。起初嘗試使用SQLServer2008自帶的導(dǎo)入導(dǎo)出工具,發(fā)現(xiàn)存在很多問題:字段類型轉(zhuǎn)換很難統(tǒng)一,需要做大批量的修改;導(dǎo)出的表名帶有引號(hào)且區(qū)分大小寫,不利于PL/SQL操作;即使做了大批量修改,導(dǎo)出過程也還是很容易報(bào)錯(cuò)。。
因此小批量的數(shù)據(jù)遷移工作可以考慮借用導(dǎo)入導(dǎo)出工具,但是涉及到較到的數(shù)據(jù)量時(shí)考慮到使用Oracle官方提供的Sql Developer:
官方下載地址:http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/index.html
廢話不多說直接說配置和操作:
>>首先,這個(gè)是需要JDK支持的,配置環(huán)境變量這個(gè)不多說。
>>下載SQL Server驅(qū)動(dòng)程序。
啟動(dòng)Sql Developer 菜單→幫助→檢查更新。選擇Third Party Sql Server Extentions。
選擇JTDS JDBC Driver 11.1.1.58。
下載完成后重啟即可。
>>添加一個(gè)Oracle的連接。
點(diǎn)擊Sql Developer 左窗口的“+”號(hào),添加連接:
點(diǎn)擊測(cè)試,測(cè)試成功后依次點(diǎn)擊保存、連接。
>>建立資料檔案庫(kù)
打開oracle的連接,右鍵打開SQL工作表。
新建一個(gè)用戶,在工作區(qū)輸入以下內(nèi)容:
(之后要在該用戶的模式中建立所謂的“資料檔案庫(kù)”,并使用該用戶去建立SQL Server移植后的用戶名)
--Creating user migration
CREATE USER migration IDENTIFIED BY migration DEFAULT TABLESPACE users
TEMPORARY TABLESPACE temp;
GRANT CONNECT, RESOURCE, CREATE VIEW, CREATE PUBLIC SYNONYM TO migration
WITH ADMIN OPTION;
GRANT ALTER ANY ROLE, ALTER ANY SEQUENCE,
ALTER ANY TABLE, ALTER TABLESPACE, ALTER ANY TRIGGER,
COMMENT ANY TABLE, CREATE ANY SEQUENCE, CREATE ANY TABLE,
CREATE ANY TRIGGER, CREATE ROLE, CREATE TABLESPACE,
CREATE USER, DROP ANY SEQUENCE, DROP ANY TABLE,
DROP ANY TRIGGER, DROP TABLESPACE, DROP USER,
DROP ANY ROLE, GRANT ANY ROLE, INSERT ANY TABLE,
SELECT ANY TABLE, UPDATE ANY TABLE TO migration;
>>添加新的oracle連接
同樣新建一個(gè)migration連接。
在連接上右鍵,選擇移植資料檔案庫(kù)→關(guān)聯(lián)移植資料檔案庫(kù):
顯示建立完畢提示框。
>>建立Sql Server連接
建立要導(dǎo)入數(shù)據(jù)來源的SQL Server連接:
>>啟動(dòng)數(shù)據(jù)庫(kù)移植向?qū)?/font>
在sqlserver連接上右鍵→移植到Orcle,啟動(dòng)數(shù)據(jù)庫(kù)移植向?qū)А?/p>
選擇資料檔案庫(kù):
輸入轉(zhuǎn)換項(xiàng)目命名、輸出目錄等:
選擇sqlserver源數(shù)據(jù)庫(kù):
選擇需要捕獲的數(shù)據(jù)庫(kù):
顯示數(shù)據(jù)類型轉(zhuǎn)換,一般不用做修改:
仍然選擇目標(biāo)數(shù)據(jù)庫(kù):
移動(dòng)數(shù)據(jù)選項(xiàng):
完成,執(zhí)行移植:
完成后,在migration用戶的連接下有:(這里看到建立的用戶名是"DBO_數(shù)據(jù)庫(kù)名")
在程序的左下角,可以看到建立的移植項(xiàng)目,展開有捕獲的數(shù)據(jù)庫(kù)對(duì)象、轉(zhuǎn)換的數(shù)據(jù)庫(kù)對(duì)象
右擊捕獲的數(shù)據(jù)對(duì)象→轉(zhuǎn)換,打開數(shù)據(jù)移植向?qū)В哼x中“對(duì)象命名”如下所示:
找了很久才找到的一個(gè)問題,就是上面說的用戶名:一定要修改這個(gè)映射為自己所需要的用戶名:
到這里就已經(jīng)建立好了用戶和表結(jié)構(gòu)。
右擊轉(zhuǎn)換的數(shù)據(jù)庫(kù)對(duì)象→生成目標(biāo)。
右擊轉(zhuǎn)換的數(shù)據(jù)庫(kù)對(duì)象→移植。移植到我們的庫(kù)中。
OK 到這里就完成了。數(shù)據(jù)遷移過程中還涉及到一些細(xì)節(jié)的東西沒有詳細(xì)說明,可能有不同的問題出現(xiàn),歡迎指正。