在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='***' GO EXEC master.dbo.sp_serveroption @server=N'TEST11', @optname=N'collation compatible', @optvalue=N'false'
GO EXEC master.dbo.sp_serveroption @server=N'TEST11', @optname=N'data access', @optvalue=N'true'
GO EXEC master.dbo.sp_serveroption @server=N'TEST11', @optname=N'dist', @optvalue=N'false'
GO EXEC master.dbo.sp_serveroption @server=N'TEST11', @optname=N'pub', @optvalue=N'false'
GO EXEC master.dbo.sp_serveroption @server=N'TEST11', @optname=N'rpc', @optvalue=N'false'
GO EXEC master.dbo.sp_serveroption @server=N'TEST11', @optname=N'rpc out', @optvalue=N'false'
GO EXEC master.dbo.sp_serveroption @server=N'TEST11', @optname=N'sub', @optvalue=N'false'
GO EXEC master.dbo.sp_serveroption @server=N'TEST11', @optname=N'connect timeout', @optvalue=N''
GO EXEC master.dbo.sp_serveroption @server=N'TEST11', @optname=N'collation name', @optvalue=null
GO EXEC master.dbo.sp_serveroption @server=N'TEST11', @optname=N'lazy schema validation', @optvalue=N'false'
GO EXEC master.dbo.sp_serveroption @server=N'TEST11', @optname=N'query timeout', @optvalue=N''
GO EXEC master.dbo.sp_serveroption @server=N'TEST11', @optname=N'use remote collation', @optvalue=N'true'
GO EXEC 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');

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

SQLserver通过链接服务器连接oracle的更多相关文章

  1. Sqlserver通过链接服务器访问Oracle的那些事儿

    前言: 1.不经历风雨,怎能见彩虹. 2.充分利用BaiDu.google等搜索引擎查找资料并整合分析! 3.世上无难事只怕有心人! 本文由来:笔者在研究SQLSERVER链接服务器到oracle并使 ...

  2. 【转】Sqlserver通过链接服务器访问Oracle的那些事儿!

    原文:http://blog.sina.com.cn/s/blog_614b6f210100t80r.html 前言:1.不经历风雨,怎能见彩虹.2.充分利用BaiDu.google等搜索引擎查找资料 ...

  3. Sqlserver通过链接服务器访问Oracle的解决办法

    转自http://blog.sina.com.cn/s/blog_614b6f210100t80r.html 一.创建sqlserver链接服务(sqlserver链接oracle)  首先sqlse ...

  4. sql server 使用链接服务器连接Oracle,openquery查询数据

      对接问题描述:不知道正式库oracle数据库账户密码,对方愿意在对方的客户端上输入账号和密码,但不告诉我们 解决方案:使用一台sql server作为中间服务器,可以通过转存数据到sql serv ...

  5. 【转】Sqlserver通过链接服务器访问Oracle的解决办法

    一.创建sqlserver链接服务(sqlserver链接oracle)  首先sqlserver 链接oracle可以通过两个访问接口: “MSDAORA” 和“OraOLEDB.Oracle” 1 ...

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

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

  7. Sqlserver通过链接服务器访问Oracle

    工作中遇到的情况,win 7 64位操作系统的就安装64位的oracle 客户端,然后重启sql service服务后再创建sql 链接服务器.关于如何创建链接服务器请查看下面的大神的链接: http ...

  8. sqlserver创建链接服务器连接sqlserver脚本

    示例: EXEC sp_addlinkedserver @server='MyLinkServer', --链接服务器别名 @srvproduct='', @provider='SQLOLEDB', ...

  9. SQLServer通过链接服务器远程删除数据性能问题解决

    原文:SQLServer通过链接服务器远程删除数据性能问题解决 在上一遍文章中介绍了SQLServer通过链接服务器访问Oracle性能问题的解决方法,本文介绍链接服务器下远程删除SQLServer数 ...

随机推荐

  1. Java Script基础(九) 下拉列表对象

    Select下拉列表 属性: options[]:返回包含下拉列表中的所有选项的一个数组. selectedIndex:设置返回下拉列表中被选项目的索引号. length:返回下拉列表框中选项的数目. ...

  2. 各种"居中"

    先看效果 代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8"/> < ...

  3. 20145102 Java 实验一

    20145102 Java 实验一 Java环境的安装 就像第一周写的一样,在linux下java的安装和配置简直简单的不行不行的,一个命令足以: sudo pacman -S jdk 配置什么的也就 ...

  4. Matlab之类型转换

    int转string:num2str(0); string转int:str2num('-1');

  5. CSS之全屏背景图

    吐槽啦:Yeah  明天就是国庆了o(* ̄▽ ̄*)o!哈哈,提前祝福各位园友国庆快乐.假期愉快.生活美满.天天开心!国庆我要回家一趟,把一些不用的东西带回家,走访一下亲朋好友,在家打几天酱油~~~ 言 ...

  6. 无法解决 equal to 运算中 "Chinese_PRC_CI_AS" 和 "Chinese_PRC_90_CI_AI" 之间的排序规则冲突。的解决方法

    在SQL SERVICE的查询的时候遇到了“无法解决 equal to 运算中 "Chinese_PRC_CI_AS" 和 "Chinese_PRC_90_CI_AI&q ...

  7. 【学习笔记】【C语言】数据

    1. 什么是数据 生活中时时刻刻都在跟数据打交道,比如体重数据.血压数据.股价数据等.在我们使用计算机的过程中,会接触到各种各样的数据,有文档数据.图片数据.视频数据,还有聊QQ时产生的文字数据.用迅 ...

  8. 前台JS(Jquery)调用后台方法 无刷新级联菜单示例

    前台用AJAX直接调用后台方法,老有人发帖提问,没事做个示例 下面是做的一个前台用JQUERY,AJAX调用后台方法做的无刷新级联菜单 http://www.dtan.so CasMenu.aspx页 ...

  9. webSphere中文日志乱码,设置日志编码方法

     1:管理控制台--->服务器--->应用程序服务器--->server1--->java和进程管理--->进程定义--->java虚拟机--->将通用jvm ...

  10. ODBC,实现图片循环写入Oracle数据库

    import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import jav ...