在SQLserver中一直使用的是DTS抽取数据,但是DTS微软只支持到2008,到了2012后就没有这个工具了,现在需要在SQLserver跟Oracle中间建立一个通道,借助这个通道,将Oracle中的数据抽取到SQLserver数据库中。

环境介绍:win2012  64位服务器、SQLserver2012数据库、本地数据库Oracle 11g-64bit

注意:在这里特别声明一点,或许有的人认为oracle根本就不区分位数,只要是数据库就行,是不行的,如果你的机子是64位的,你必须装64位的oracle.

本来是考虑到在服务器上装database太浪费资源了,但是在装客户端的时候遇到如下问题:

  Could not find the main class. Program will exit.

      这个问题我也没有深究,网上说是因为装在中文目录下的原因,其实不然,我的是在英文目录下,那就是版本问题。

     下面是我的一个具体创建链接的详细步骤:

     1.配置ODBC

     先到C:\app\product\11.2.0\dbhome_1\NETWORK\ADMIN\,找到tnsnames.ora

     配置上连接远程oracle的服务名。

   

   打开ODBC64

   

  安装了64位的oracle数据库之后的ODBC64

然后到用户DNS下,点击添加,找到刚才的驱动,即可出现如下界面:

点击测试连接后,会让你输入登录oracle数据库的用户名跟密码,输入完成点ok

直到出现如下界面,说明已经成功一半了。

2.新建链接服务

图中红色部分特别注意,IP加上实例名。或许有人觉得为什么不直接用ODBC中刚配置好的那个160作为数据源,我刚开始也觉得应该可以这样,但是实践了,报错了。我直接用实例加IP是成功的。

输入用户名跟密码

也可以使用脚本建立服务链接:

USE [master]
GO/****** Object:  LinkedServer [TEST]    Script Date: 2015/12/2 11:18:01 ******/
EXEC master.dbo.sp_addlinkedserver @server = N'TEST11', @srvproduct=N'oracle', @provider=N'OraOLEDB.Oracle', @datasrc=N'192.168.1.160/oracle'/* For security reasons the linked server remote logins password is changed with ######## */
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'TEST11',@useself=N'False',@locallogin=NULL,@rmtuser=N'***',@rmtpassword='***'GOEXEC master.dbo.sp_serveroption @server=N'TEST11', @optname=N'collation compatible', @optvalue=N'false'
GOEXEC master.dbo.sp_serveroption @server=N'TEST11', @optname=N'data access', @optvalue=N'true'
GOEXEC master.dbo.sp_serveroption @server=N'TEST11', @optname=N'dist', @optvalue=N'false'
GOEXEC master.dbo.sp_serveroption @server=N'TEST11', @optname=N'pub', @optvalue=N'false'
GOEXEC master.dbo.sp_serveroption @server=N'TEST11', @optname=N'rpc', @optvalue=N'false'
GOEXEC master.dbo.sp_serveroption @server=N'TEST11', @optname=N'rpc out', @optvalue=N'false'
GOEXEC master.dbo.sp_serveroption @server=N'TEST11', @optname=N'sub', @optvalue=N'false'
GOEXEC master.dbo.sp_serveroption @server=N'TEST11', @optname=N'connect timeout', @optvalue=N'0'
GOEXEC master.dbo.sp_serveroption @server=N'TEST11', @optname=N'collation name', @optvalue=null
GOEXEC master.dbo.sp_serveroption @server=N'TEST11', @optname=N'lazy schema validation', @optvalue=N'false'
GOEXEC master.dbo.sp_serveroption @server=N'TEST11', @optname=N'query timeout', @optvalue=N'0'
GOEXEC master.dbo.sp_serveroption @server=N'TEST11', @optname=N'use remote collation', @optvalue=N'true'
GOEXEC master.dbo.sp_serveroption @server=N'TEST11', @optname=N'remote proc transaction promotion', @optvalue=N'true'
GO

上述工作做完之后可以用如下语句测试是否连通

select * from openquery(TEST11,'select SYSDATE from DUAL');

如果有结果就说明成功了。

转载于:https://www.cnblogs.com/OliverQin/p/5012422.html

SQLserver通过链接服务器连接oracle相关推荐

  1. SQLServer通过链接服务器调用Oracle 存储过程

    语法: declare @输出参数 数据类型; exec(' exec 存储过程(?, ?)', 输入参数, @输出参数 out) at 链接服务器名 参考文章: SQL2008 链接Oracle 调 ...

  2. sqlserver访问接口无Oracle,SQLServer通过链接服务器访问Oracle

    数据库:SqlServer2005 .Oracle 11gR2 系统环境:windows Server 2008R2 32位. 最近在做项目时,需要通过sql的链接服务器访问Oracle.以前弄过sq ...

  3. SQLServer链接服务器至Oracle

    1.         我方服务器必须安装msdtc服务,并进行相应配置. 2.         我方服务器必须安装oracle client,这个要对应中心站oracle版本的客户端. 3.      ...

  4. sqlserver oracle插件,SQLServer链接服务器至Oracle

    在SQL SERVER中访问ORACLE表的方法 在SQL SERVER中,能否访问ORACLE表,进行查询操作呢?答案无疑是可以的,下面就为你介绍在SQL SERVER中访问ORACLE表的实现方法 ...

  5. SQL Server通过链接服务器访问Oracle

    Windows SQL Server 2016 数据库通过链接服务器访问Oracle数据库. 借鉴了很多大佬的文章,但是由于外链失效.文章久远.安装包版本太低.自己积分清零等多重原因,导致了很多问题, ...

  6. mssql 连接oracle配置,MSSQL通过链接服务器访问Oracle

    在有些场景,我们需要整合其他异构数据库的数据.我们可以使用代码去读取,经过处理后,再将数据保存到MSSQL数据库中.如果数据量比较大,但处理的逻辑并不复杂的情况下,这种方式就不是最好的办法.这时可以使 ...

  7. SQL SERVER 2005 通过链接服务器 访问 ORACLE 的快速设定方法

    1)在SQL_SERVER 2005服务器上安装Oracle 10g的客户端. 假设安装到D:\oracle\ 目录.如果D:是NTFS分区,需要将ORACLE安装后的目录设为所使用的用户有权可运行. ...

  8. sqlserver修改链接服务器,sqlserver怎么新建链接服务器

    sqlserver怎么新建链接服务器 内容精选 换一换 在IntelliJ上选择"项目",找到".idea"文件夹,单击右键选择"新建>文件&q ...

  9. SQLServer的链接服务器

    今天在研究自动化测试时,需要查看Access数据文件的数据表,但是没有装Access,找来找去找不到Office的安装盘,情急下突然想起在SQLServer中可以添加"链接服务器" ...

最新文章

  1. java url json字符串_使用HttpClient将URL中的JSON查询字符串发送到Web服务(Java)
  2. 百度燎原计划2018强势回归 开放深度学习工程师评价标准
  3. 深入分析Java单例模式的各种方案
  4. python编辑器,作为初学者该如何抉择?
  5. 代谢组学在疾病诊断如何应用?
  6. 请你简要说明一下线程的基本状态以及状态之间的关系?
  7. 什么都不说,来4波js
  8. php.ini设置相关信息汇总
  9. 如何在html里加入验证码_如何把crc校验加入到对应的程序里?看高手怎么做
  10. nodejs操作Excel
  11. matlab 混沌_释放混沌猴子
  12. img和文字都居中对齐
  13. Cloudflare找不到服务器 IP 地址
  14. JAVA面向对象编程学习 (1)语法基础与类与对象
  15. InterviewQuestion
  16. 构建表情符号制作应用程序
  17. 经典名言名句(摘抄)
  18. Android八门神器(一): OkHttp框架源码解析
  19. 转载:全局拉普拉斯平滑之(1)Strucutre extraction from texture via relative total variation及稀疏矩阵求解...
  20. swiper3的前进、后退按钮放到容器的外面

热门文章

  1. 关于DX中纹理平移的一个小问题
  2. matlab中箭头详细设置
  3. 计算机视觉未有深度学习之前
  4. 利用深度学习识别番茄早期植株中的塔图绝对菌
  5. 动手学深度学习Pytorch Task05
  6. 复盘所有NLP比赛的TOP方案,专注NLP
  7. redis迁移至linux,redis几种数据导出导入方式
  8. mysql日志文件架构_mysql日志文件
  9. linux shell网卡,Shell脚本查看LINUX系统 网卡实时流量
  10. thttpd支持php吗,轻量型thttpd+php5