ITPub博客

首页 > 数据库 > SQL Server > sqlserver 连接 oracle

sqlserver 连接 oracle

原创 SQL Server 作者:zuoqi_71 时间:2014-07-17 22:11:23 0 删除 编辑

1、首先安装oracle client

安装时有四个选项:
l Instantclient,相当于最小化安装。
l 管理员,完整安装。
l 运行时
l 自定义

为了管理方便,一般以管理员方式安装

2、配置tnsnames.ora

prod = 
(DESCRIPTION = 
  (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.128)(PORT = 1526)) 
  (CONNECT_DATA = 
    (SERVER = DEDICATED) 
    (SERVICE_NAME = prod) 
  ) 
) 


测试tns

3、在sqlserver中建dblink

首先sqlserver 链接oracle可以通过两个访问接口:

“MSDAORA” 和“OraOLEDB.Oracle”

1、“MSDAORA”访问接口是由Microsoft OLE DB Provider for Oracle提供的,这里建议不使用此接口进行链接。
通过该访问接口建立的链接服务器在进行查询oracle表(带数据类型CLOB、BLOB字段)时会报这个错误


“链接服务器""的 OLE DB 访问接口 "MSDAORA" 返回了消息 "发生了一个 Oracle 错误,但无法从 Oracle 中检索错误信息。"。
链接服务器""的 OLE DB 访问接口 "MSDAORA" 返回了消息 "数据类型不被支持。"


2、“OraOLEDB.Oracle” 访问接口是由oracle 的Oracle Probider for OLE DB 驱动提供的。它解决了两个数据库类型不一致的的问题。而且如果需要使用分布式事务,必须使用它来创建链接服务器。后文会有详细介绍。
在创建之前,在SQLSERVER中,链接服务器->访问接口->OraOLEDB.Oracle->右键属性,选中 "Allow inprocess" (中文为:允许进程内)
这一步是使我们选择的OraOLEDB.Oracle接口打开执行操作。如未设置会报如下错误:
 “无法初始化链接服务器 "null" 的 OLE DB 访问接口 "OraOLEDB.Oracle" 的数据源对象"首先sqlserver 链接oracle可以通过两个访问接口:




测试

--两种方式

select * from openquery(dl_prod,'select * from t')

--注意这个都要大写

SELECT *
  FROM DL_PROD..TOM.T
GO

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/22193071/viewspace-1221521/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2014-02-26

  • 博文量
    48
  • 访问量
    163011