Oracle10g SQLServer 2005互相访问解决方法

来源:互联网 发布:js获取自定义属性值 编辑:程序博客网 时间:2024/05/21 08:04

1.      SQLServer 2005 访问Oracle 10g

a)        在安装SQLServer数据库德服务器上安装Oracle 10g Client并且配置数据库连接Oracle Net Manager,并测试连接成功。

配置oracle net manager

b)        登入SQL Server后,选择Server Objects下的Linked Servers新增,如下选择Oracle Provider for OLE DB

 

新建Linked Server

指定Linked Server访问账号密码

c)         手动修改注册表或将以下代码编辑保存reg文件执行即可。需要注意的是如果服务器安装多个SQL数据库,则在对应的资料库MSSQL.XProviders增加ORAOLEDB.ORACLEAllowInProcess参数

Windows Registry Editor Version 5.00

 

[HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Microsoft SQL Server/MSSQL.1/Providers/ORAOLEDB.ORACLE]

"AllowInProcess"=dword:00000001

d)        测试Link Server,需要注意的是schema.table必须大写,否则报错

SELECT * FROM TESTORA..PMS.JOB_TYPE即可

e)         

 

2.      Oracle 10g 访问 SQLServer 2005(无需安装透明网关方式)

a)        在安装Oracle 10g数据库的服务器上安装Microsoft Data Access Components 2.8

b)        进入ODBC建立系统DSN请注意,不要建用户DSN,否则会发生ORA-28500ORA-02063错误代码testsql

建立系统ODBC

c)         配置tnsnames.ora增加以下内容,路径D:/oracle/product/10.2.0/NETWORK/ADMIN

 

TESTSQL =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.2)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SERVICE_NAME = testsql)

    )

    (HS=)  

  )

 

d)        配置listener.ora增加以下红色内容,路径D:/oracle/product/10.2.0/NETWORK/ADMIN

SID_LIST_LISTENER =

  (SID_LIST =

    (SID_DESC =

      (SID_NAME = PLSExtProc)

      (ORACLE_HOME = D:/oracle/product/10.2.0)

      (PROGRAM = extproc)

    )

    (SID_DESC =

      (SID_NAME = TESTSQL)

      (ORACLE_HOME = D:/oracle/product/10.2.0)

      (PROGRAM = hsodbc)

    )

  )

e)        重新启动oracle 监听器

f)          添加网关配置文件inittestsql.ora,路径D:/oracle/product/10.2.0/hs/admin,可复制原来的inithsodbc.ora修改即可。

HS_FDS_CONNECT_INFO = testsql

HS_FDS_TRACE_LEVEL = 0

g)        建立database link

CREATE DATABASE LINK TESTSQL USING ‘TESTSQL’;

h)        测试database link

SELECT * FROM dbo.表名@testsql

原创粉丝点击