SQL Server數(shù)據(jù)導(dǎo)入到Oracle中的方法
在我們使用SQL Server數(shù)據(jù)庫的過程中,有時(shí)需要將SQL Server數(shù)據(jù)導(dǎo)出,導(dǎo)入到其他的數(shù)據(jù)庫中,比如導(dǎo)入到Oracle中。
假設(shè)要將SQL Server中的Northwind數(shù)據(jù)庫中的Products表導(dǎo)出到Oracle的Scott用戶
首先需要有安裝SQL Server企業(yè)版
1.打開工具:
開始->程序->Microsoft SQLServer->導(dǎo)入和SQL Server數(shù)據(jù)導(dǎo)出數(shù)據(jù)
2.下一步,選擇數(shù)據(jù)源
[數(shù)據(jù)源]選擇“用于SQL Server的Microsoft OLE DB提供程序”,這應(yīng)該是缺省值。
[服務(wù)器]選擇要導(dǎo)出數(shù)據(jù)的服務(wù)器,如果是本機(jī),選擇(local)
[數(shù)據(jù)庫]選擇要導(dǎo)出的數(shù)據(jù)所在的庫,這里選擇Northwind
3.下一步,選擇目的
[目的]選擇Microsoft ODBC for Oracle
[DSN]選擇用戶/系統(tǒng)DSN一項(xiàng),然后在下拉列表框中找一個(gè)已經(jīng)連接到了Scott用戶的DSN名稱。
如果下拉列表中沒有,點(diǎn)下拉列表框右側(cè)的[新建],出現(xiàn)創(chuàng)建新數(shù)據(jù)源界面。
接下來選擇系統(tǒng)數(shù)據(jù)源,下一步,在驅(qū)動(dòng)程序列表中選擇Microsoft ODBC for Oracle
下一步,完成,出現(xiàn)Microsoft ODBC for Oracle安裝界面
[數(shù)據(jù)源名稱]隨便輸入,比如sss
[說明]可以不填
[用戶名稱]填入要SQL Server數(shù)據(jù)導(dǎo)出到的Oracle用戶名稱,這里是scott
[服務(wù)器]填入要連接到Oracle服務(wù)器所使用的服務(wù)名,比方說使用sqlplus scott/tiger@server1可以連接到數(shù)據(jù)庫,那么這里就填入server1。如果本機(jī)就是服務(wù)器,使用sqlplus scott/tiger即可連接到數(shù)據(jù)庫,這里空著不填即可。
這樣就創(chuàng)建好了一個(gè)數(shù)據(jù)源sss,保證下拉列表框中選擇了sss一項(xiàng)。
[用戶名]填入SQL Server數(shù)據(jù)導(dǎo)出到的Oracle用戶名稱,這里是scott
[密碼]填入SQL Server數(shù)據(jù)導(dǎo)出到的Oracle用戶使用的密碼,這里是tiger
4.下一步,指定表復(fù)制或查詢
如果要導(dǎo)出的內(nèi)容是整個(gè)表,選擇[從源數(shù)據(jù)庫復(fù)制表和視圖]
如果要導(dǎo)出的內(nèi)容是表的一部分列,行,可以選擇[用一條查詢指定要傳輸?shù)臄?shù)據(jù)],這時(shí)需要寫出一個(gè)查詢語句
這里選擇第一項(xiàng)[從源數(shù)據(jù)庫復(fù)制表和視圖]
5.下一步,選擇源表和視圖
點(diǎn)中要導(dǎo)出的表Products一行的復(fù)選框,目的、轉(zhuǎn)換兩欄就會出現(xiàn)內(nèi)容。
目的可以用來選擇表名。轉(zhuǎn)換可以用來修改列的數(shù)據(jù)類型或是整個(gè)建表的SQL語句
6.下一步,保存、調(diào)度和復(fù)制包
選中立即運(yùn)行
7.下一步,正在完成DTS導(dǎo)入/導(dǎo)出向?qū)?/P>
8.完成
提示“成功地將n個(gè)表從Microsoft SQLServer復(fù)制到了Oracle”
9.完成,關(guān)閉導(dǎo)入導(dǎo)出程序
注意:因?yàn)閛racle的表名都是大寫的,而SQL的表可能是大小混寫的,所以導(dǎo)入后在oracle里查不到該表,比如這個(gè)Products表在oracle里查詢就應(yīng)該寫成select * from scott."Products";為了方便查詢可以通過批量修改表名為大寫以便后面導(dǎo)數(shù)據(jù)的工作。
---導(dǎo)完數(shù)據(jù)后執(zhí)行下面語句,生成把表名修改成大寫的操作
select 'ALTER TABLE '||'"'||table_name||'"'||' RENAME TO '|| upper(table_name)||';' from user_tab_comments;
把生成的文件執(zhí)行即可把此用戶下的所有表名修改成大寫。
【編輯推薦】