sqlserver 链接 oracle 说明

首先安装oracle客户端

然后在sqlserver服务器对象中建立链接服务器

注意下面红字部分,直接查询的时候一定要大写

在使用OPENROWSET 和 OPENDATASOURCE这两个函数时,可能需要在外围应用配置里激活AdHocRemoteQueriesEnabled属性


链接服务器应用:
  A、
查询Oracle数据表方式一(这种方式,当Oracle与SQLServer的数据类型不一致时经常报错,且速度稍慢):
  select * from [LINK2ORACLE]..[ORACLE_USER_NAME].TABLE_NAME;
  我在执行该语句经常报类似错误信息:链接服务器 "LINK2ORACLE"  OLE DB 访问接口 "MSDAORA" 为列提供的元数据不一致。对象 ""CMCC"."OS2_GIS_CELL"" 的列"ISOPENED" (编译时序号为 20)在编译时有 130  "DBTYPE",但在运行时有 5

  B、查询Oracle数据表方式二(经试验,这种方式使用起来很顺畅,不报错,且速度几乎和在Oralce中一样快):
  select * from openquery(LINK2ORACLE,'select * from OracleUserName.TableName') 
  您可以把openquery()当成表来使用。

  C、举个例子(将Oralce用户CMCC下的基站表OS_GIS_BASESTATION导入到SQLServer2005数据库中):
  select * into OS_GIS_BASESTATION from openquery(LINK2ORACLE,'select * from CMCC.OS_GIS_BASESTATION') 

  D、更便捷的方式:通过创建同义词进行便捷查询:
  CREATE SYNONYM OS_GIS_CELL FOR [ORACLELK]..[CMCC].OS_GIS_CELL;
  select * from os_gis_cell;
  select * from os_gis_cell a where a.CellName is null;

注意:涉及 Oracle 部分的 SQL 语句,尤其是 [ORACLELINK]..[ORACLE_USER_NAME].TABLE_NAME 一定要大写,否则会报类似错误:
消息 7314,级别 16,状态 1,第 1 
链接服务器 "ORACLELK"  OLE DB 访问接口 "MSDAORA" 不包含表 ""CMCC"."OS2_gis_CELL""。该表不存在,或者当前用户没有访问该表的权限。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值