SQL Server 2000的导入导出功能还是不错的,支持各种各样的数据库,但是却有好多奇怪的bug,不能直接操作,几乎每一步都要上网搜索,最后搞定了,一定要记下来:
1、在同一台电脑上装好SQL Server 2000的客户端和Oracle 10g的客户端,并分别设置好到源数据库(SQL Server 2000数据库)和目标数据库(Oracle 数据库)的连接,两个数据库都有图形界面的企业管理器,很容易设置好;
2、在控制面板-管理工具-数据源里添加一个DSN,驱动程序选择类似“Oracle in OraClient10g_home1”的,确定之后输入Data Source Name(随意),Description(随意),TNS Service Name(在企业管理器里设置好的连接名),User ID(用户名),然后按Test Connection测试是否连接成功,成功之后点OK;
3、在SQL Server 2000的企业管理器里,在任意一个表上点右键,所有任务,导出数据,在目的里选择“Oracle in OraClient10g_home1”,用户/系统DSN里面就会出现刚才设置好的DSN名字,选中,然后输入用户名密码,点两次下一步就会出现选择源表和视图对话框
4、这里要注意的是,勾上源中的某个表,在目的里面就会出现"用户名"."表名"的默认选项,如果你刚才使用的Oracle用户名是小写的话,这里也会是小写,
一定要改成大写,否则会提示该用户名不存在!
目的也可以使用Microsoft OLE DB Provider for Oracle,在属性里面设置服务器名称为Oracle的TNS名称,用户名和密码输入Oracle用户名和密码,测试连接通过即可,后面的步骤都一样。
如果出现以下错误:
OLE DB 提供程序 'MSDAORA' 报错。
[OLE/DB provider returned message: 未找到 Oracle 客户端和网络组件。这些组件是由 Oracle 公司提供的,是 Oracle 8i 版 (或更高) 客户软件安装的一部分。
在安装这些组件之前,将无法使用此提供程序。]
OLE DB 错误跟踪[OLE/DB Provider 'MSDAORA' IDBInitialize::Initialize returned 0x80004005: ]
就要修改注册表,有人已经作出了详细的修改说明,在这里可以看到:
我把那个表也贴在这里:
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"
|