msSqlsrver中有链接服务,可以与远程服务器连接作为本地的镜像来使用。
最近研究将oracle数据库连接到msSqlserver中,使msSqlserver中可以使用oracle中的数据。
连接方法:
1、在oracle的net manager中建立net服务名,连接到远程oracle数据库。
2、在MsSqlserver中建立链接服务器。mssqlserver企业管理器——〉安全性——〉链接服务器新建链接服务器,产品名为oracle,数据源为oracle net服务名
3、连接后数据库经常中断,可以在C:/WINDOWS/system32/drivers/etc/hosts文件中加入IP地址和机器名。
在msSqlserver中写了个存储过程,没有启用事务的时候运行正常,启用事务后再执行存储过程出错:'MSDAORA' ITransactionJoin::JoinTransaction returned 0x8004d01b
几经寻觅,终有结果:
1、开始——程序——管理工具——组件服务;
组建服务——计算机——我的电脑;
右键属性——msdtc标签——安全性配置
把所有能选的都选上(可能不用都选);
一路确定;
2、注册表更改:
HKEY_LOCAL_MACHINE/Software/Microsoft/MSDTC
AllowonlySecureRpcCalls=0
TurnoffRpcSecurity=1
3、注册表更改
据说是微软和oracle接口不好所致 本人测试oracle9i客户端连oracle10g服务器,测试通过;
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" |
4、行了,再不好使我也没招了。