SQL Server 2000的導(dǎo)入導(dǎo)出功能還是不錯(cuò)的,支持各種各樣的數(shù)據(jù)庫(kù),但是卻有好多奇怪的bug,不能直接操作,幾乎每一步都要上網(wǎng)搜索,最后搞定了,一定要記下來:
1、在同一臺(tái)電腦上裝好SQL Server 2000的客戶端和Oracle 10g的客戶端,并分別設(shè)置好到源數(shù)據(jù)庫(kù)(SQL Server 2000數(shù)據(jù)庫(kù))和目標(biāo)數(shù)據(jù)庫(kù)(Oracle 數(shù)據(jù)庫(kù))的連接,兩個(gè)數(shù)據(jù)庫(kù)都有圖形界面的企業(yè)管理器,很容易設(shè)置好;
2、在控制面板-管理工具-數(shù)據(jù)源里添加一個(gè)DSN,驅(qū)動(dòng)程序選擇類似“Oracle in OraClient10g_home1”的,確定之后輸入Data Source Name(隨意),Description(隨意),TNS Service Name(在企業(yè)管理器里設(shè)置好的連接名),User ID(用戶名),然后按Test Connection測(cè)試是否連接成功,成功之后點(diǎn)OK;
3、在SQL Server 2000的企業(yè)管理器里,在任意一個(gè)表上點(diǎn)右鍵,所有任務(wù),導(dǎo)出數(shù)據(jù),在目的里選擇“Oracle in OraClient10g_home1”,用戶/系統(tǒng)DSN里面就會(huì)出現(xiàn)剛才設(shè)置好的DSN名字,選中,然后輸入用戶名密碼,點(diǎn)兩次下一步就會(huì)出現(xiàn)選擇源表和視圖對(duì)話框
4、這里要注意的是,勾上源中的某個(gè)表,在目的里面就會(huì)出現(xiàn)"用戶名"."表名"的默認(rèn)選項(xiàng),如果你剛才使用的Oracle用戶名是小寫的話,這里也會(huì)是小寫,
一定要改成大寫,否則會(huì)提示該用戶名不存在!
目的也可以使用Microsoft OLE DB Provider for Oracle,在屬性里面設(shè)置服務(wù)器名稱為Oracle的TNS名稱,用戶名和密碼輸入Oracle用戶名和密碼,測(cè)試連接通過即可,后面的步驟都一樣。
如果出現(xiàn)以下錯(cuò)誤:
OLE DB 提供程序 'MSDAORA' 報(bào)錯(cuò)。
[OLE/DB provider returned message: 未找到 Oracle 客戶端和網(wǎng)絡(luò)組件。這些組件是由 Oracle 公司提供的,是 Oracle 8i 版 (或更高) 客戶軟件安裝的一部分。
在安裝這些組件之前,將無法使用此提供程序。]
OLE DB 錯(cuò)誤跟蹤[OLE/DB Provider 'MSDAORA' IDBInitialize::Initialize returned 0x80004005: ]
就要修改注冊(cè)表,有人已經(jīng)作出了詳細(xì)的修改說明,在這里可以看到:
我把那個(gè)表也貼在這里:
Oracle Client |
Microsoft Windows NT、
Oracle Microsoft Windows 95、
Client Windows 98 和 Windows 98 SE |
Microsoft Windows 2000/XP/2003 |
7.x |
[HKEY_LOCAL_MACHINE\SOFTWARE
\Microsoft\TransactionServer\Local Computer\My Computer]
"OracleXaLib"="xa73.dll"
"OracleSqlLib"="SQLLib18.dll"
"OracleOciLib"="ociw32.dll
|
[HKEY_LOCAL_MACHINE\SOFTWARE
Microsoft\MSDTC\MTxOCI]
"OracleXaLib"="xa73.dll"
"OracleSqlLib"="SQLLib18.dll"
"OracleOciLib"="ociw32.dll"
|
8.0 |
[HKEY_LOCAL_MACHINE\SOFTWARE
\Microsoft\Transaction Server
\Local Computer\My Computer]
"OracleXaLib"="xa80.dll"
"OracleSqlLib"="sqllib80.dll"
"OracleOciLib"="oci.dll"
|
[HKEY_LOCAL_MACHINE\SOFTWARE
\Microsoft\MSDTC\MTxOCI]
"OracleXaLib"="xa80.dll"
"OracleSqlLib"="sqllib80.dll"
"OracleOciLib"="oci.dll" |
8.1 |
[HKEY_LOCAL_MACHINE\SOFTWARE
\Microsoft\Transaction Server
\Local Computer\My Computer]
"OracleXaLib"="oraclient8.dll"
"OracleSqlLib"="orasql8.dll"
"OracleOciLib"="oci.dll"
|
[HKEY_LOCAL_MACHINE\SOFTWARE
\Microsoft\MSDTC\MTxOCI]
"OracleXaLib"="oraclient8.dll"
"OracleSqlLib"="orasql8.dll"
"OracleOciLib"="oci.dll"
|
9.0 |
[HKEY_LOCAL_MACHINE\SOFTWARE
\Microsoft\Transaction Server
\Local Computer\My Computer]
"OracleXaLib"="oraclient9.dll"
"OracleSqlLib"="orasql9.dll"
"OracleOciLib"="oci.dll" |
[HKEY_LOCAL_MACHINE\SOFTWARE
\Microsoft\MSDTC\MTxOCI]
"OracleXaLib"="oraclient9.dll"
"OracleSqlLib"="orasql9.dll"
"OracleOciLib"="oci.dll"
|
10.0 |
[HKEY_LOCAL_MACHINE\SOFTWARE
\Microsoft\Transaction Server
\Local Computer\My Computer]
"OracleXaLib"="oraclient10.dll"
"OracleSqlLib"="orasql10.dll"
"OracleOciLib"="oci.dll" |
[HKEY_LOCAL_MACHINE\SOFTWARE
\Microsoft\MSDTC\MTxOCI]
"OracleXaLib"="oraclient10.dll"
"OracleSqlLib"="orasql10.dll"
"OracleOciLib"="oci.dll"
|