在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. 新手留言薄asp.net MVC 学习(适合新手学习)

    以下是发布到IIS后的效果截图: 1)首页展示: 2)登录后台页面展示: 3)后台页面展示: 该项目源代码下载地址:http://files.cnblogs.com/files/f12-liugang ...

  2. DNA电荷转移:电阻的计算公式 & Marcus电子转移理论

    更新:26 APR 2016 参考文献: [1] Mechanisms for DNA Charge Transport. Chem. Rev. 2010, 110, 3, 1642-1662 [电子 ...

  3. 数据加工处理拼sql

    @Override public void offonShareBill(Boolean fg, Map<String,String[]> map) throws BusinessExce ...

  4. Mac OSX系统搭建React natvie for android 开发环境

    1.下载node.js  https://nodejs.org/en/ 下载OSX版本 V5.6  2.安装android SDK  JDK  3.安装react-native-cli 打开命令行,输 ...

  5. js取单选按钮,复选按钮的值

    $("input[name=PType]").bind('click', function () { if ($(this).prop("checked")) ...

  6. c#中的方法的定义和运用

    首先,理解下,函数和方法: 其实两者是一样的,只是个叫法不同. C#中叫做Method,中文叫方法: C++中称为Function,中文叫函数. 函数是Function,多指以前面向过程编程时候,将逻 ...

  7. android app性能优化大汇总(google官方Android性能优化典范 - 第2季)

    Google前几天刚发布了Android性能优化典范第2季的课程,一共20个短视频,包括的内容大致有:电量优化,网络优化,Wear上如何做优化,使用对象池来提高效率,LRU Cache,Bitmap的 ...

  8. 十一、Android学习笔记_AsyncQueryHandler的应用

    研究AsyncQueryHandler这个类的时候遇到了几个重要的不清楚的知识点 1. Handler与Thread,Looper的关系 2. HandlerThread是干什么用的 3. Threa ...

  9. Datazen 自定义地图--中国地图

    背景: 关于Datazen可以google一下,因为目前Datazen还没有中文版,所以google出来的资料会多一点,由于公司想用Datazen来做报表展示,所以有了下文. 参考文章: 中文---h ...

  10. DWZ (JUI) 教程 tree 控件的选中事件

    DWZ (JUI) 教程 tree 控件的选中事件 先简单说一下流程 第一步 当然是先定义好回调事件了 function checkCallback(json){ ........... ...... ...