sql server 使用链接服务器连接Oracle,openquery查询数据
对接问题描述:不知道正式库oracle数据库账户密码,对方愿意在对方的客户端上输入账号和密码,但不告诉我们
解决方案:使用一台sql server作为中间服务器,可以通过转存数据到sql server,再从sql server同步数据到我方数据库。在sql server 上建立一个链接服务器连接Oracle,通过openquery查询oracle数据
具体实施方案:
在sql server创建链接服务器,通过链接服务器查询oracle数据,链接服务器对方设置,我方不知道账户和密码。
创建连接服务器方案如下图:
1、 确保pl/sql能够登录上oracle,查看pl/sql的联系信息文件tnsnames.ora,找到数据库连接相关信息,如下图:
如图,CUNJK即数据库名字,需要被sql server链接服务器使用
2、 登录sql server,创建链接服务器,找到链接服务器文职,服务器对象->链接服务器,步骤如下图
访问接口调节oracle的访问接口,服务器对象->链接服务器->访问接口,右键OraCLEDB.Oracle打开属性,勾选允许进程内
3、 创建链接服务器
右键链接服务器->新建链接服务器,填写创建服务器名字,选择访问接口为oracle,产品名称为Oracle,数据源请填写与pl/sql链接信息相同,
安全性登录,如下图:
输入Oracle的账户和密码,密码隐藏,我方不会知晓,
服务器选项配置,如下图:
调节RPC为Ture,RPC Out为True
确定完成。
4、 建立查询,测试
查询链接服务器需要使用OPENQUERY函数进行查询,sql请参考SQL server的语法原则,示例如下:
SELECT top 1 * FROM OPENQUERY(CUNJK,'select * from cjk_account') a;
方案总结:能通过sql server查询数据,我方即可通过同步程序连接sql sever进行数据同步
链接服务器查询 OPENQUERY
使用sql server链接服务器查询oracle ,会先通过查询sql 查询oracle,缓存到sql server 中,再通过sql server 查询,查询会较慢
OpenQuery 是SQL Server用来与其他Server交互的一种技术,通过OpenQuery,SQL Server 可以直接访问其他数据库资源。而其他数据库在OpenQuery 表达式中是以Linked Server 存在的
在OpenQuery内部添加查询条件,比在外面添加查询速度相对较快,在内部添加条件’’(单引号字符串条件)会有限制,’’(单引号必须进行转义),两个双引号,代表一个双引号,示例如下:
Select from OPENQUERY(R,'select * from cjk_account where createdate < ''2019-03-17 08:52:55'' ')
如果对openquery查询还没有弄明白,可参考这篇博文:http://www.cnblogs.com/Dannier/archive/2011/09/21/openquery.html
sql server 使用链接服务器连接Oracle,openquery查询数据的更多相关文章
- SQL Server的链接服务器(MySQL、Oracle、Ms_sql、Access、SYBASE)
原文:SQL Server的链接服务器(MySQL.Oracle.Ms_sql.Access.SYBASE) 一.使用 Microsoft OLE DB Provider For ODBC 链接MyS ...
- [翻译]——SQL Server使用链接服务器的5个性能杀手
前言: 本文是对博客http://www.dbnewsfeed.com/2012/09/08/5-performance-killers-when-working-with-linked-server ...
- SQL Server 远程链接服务器详细配置
原文:SQL Server 远程链接服务器详细配置[转载] http://hi.baidu.com/luxi0194/blog/item/a5c2a9128a705cc6c2fd7803.html - ...
- sql server 2005 链接服务器:未将服务器 配置为用于 RPC
原文:sql server 2005 链接服务器:未将服务器 配置为用于 RPC RPC: 远程过程调用(Remote Procedure Calls) --LinkedServer.Rpc 属性: ...
- C#连接Oracle数据库查询数据
C#连接Oracle数据库可以实现许多我们需要的功能,下面介绍的是C#连接Oracle数据库查询数据的方法,如果您对C#连接Oracle数据库方面感兴趣的话,不妨一看. using System; u ...
- SQL Server创建链接服务器
1.通过sql语句创建链接服务器,数据是sql server的 EXEC sp_addlinkedserver @server='test', --链接服务器别名,自定义 @srvproduct='' ...
- sql server 2012 链接服务器不能链接sql server 2000的解决方案 ,
本数据源来自 https://www.kafan.cn/edu/922556.html 目的为了备忘 把原来的sql server 2005直接装成了2012,然后在建立链接服务器链接一台sql s ...
- SQL Server 添加链接服务器
背景 在SQL SERVER中,如果我们查询数据库需要关联另外一台数据库中表,在这种情况下我们可以通过添加服务器链接来实现. 案列 方式1.sql server 提供了图形化界面,如下: 右键> ...
- SQLserver通过链接服务器连接oracle
在SQLserver中一直使用的是DTS抽取数据,但是DTS微软只支持到2008,到了2012后就没有这个工具了,现在需要在SQLserver跟Oracle中间建立一个通道,借助这个通道,将Oracl ...
随机推荐
- C# 枚举转字符串
有时候需要把枚举转字符串,那么如何把枚举转字符串? 枚举转字符串 假如需要把枚举转字符串,可以直接把他进行转换,请看代码 public enum Di { /// <summary> // ...
- Head First Python学习笔记3——持久存储
经过上几章的学习,完成如下任务:读取一个文本文件里的内容,将每一行的内容按“:”分割成两部分,根据分割出第一项判断并分别放入两个列表里,去除首尾空白,在屏幕上打印. # 两个列表用于存储数据man=[ ...
- [javaSE] 位运算符(&|^)
位运算是直接对二进制进行计算 左移 << 右移 >> 先把整数换成四个8bit 0000-0000 0000-0000 0000-0000 0000-0000 这个二进制左右移 ...
- win10完美去除小箭头
1.去掉小箭头 reg add /d "%systemroot%\system32\imageres.dll,197" /t reg_sz /f taskkill /f /im e ...
- (mysql)找不到请求的 .Net Framework Data Provider。可能没有安装
webconfig配置以下节点(注意版本号) <system.data> <DbProviderFactories> <add name="MySQL Data ...
- 网络编程: 基于TCP协议的socket, 实现一对一, 一对多通信
TCP协议 面向连接 可靠的 面向字节流形式的 tcp是基于链接的,必须先启动服务端,然后再启动客户端去链接服务端 TCP协议编码流程: 服务器端: 客户端 实例化对 ...
- springMVC 简单应用
一,controller FileController package com.dkt.controller; import java.io.File; import java.io.FileInpu ...
- nodejs中创建web服务,监听本地IP
nodejs官网例子 var http = require('http'); http.createServer(function (req, res) { res.writeHead(200, {' ...
- Django基础十之Form和ModelForm组件
一 Form介绍 我们之前在HTML页面中利用form表单向后端提交数据时,都会写一些获取用户输入的标签并且用form标签把它们包起来. 与此同时我们在好多场景下都需要对用户的输入做校验,比如校验用户 ...
- ArcGIS for JavaScript 关于路径开发的一些记录(二)
又是高度集中开发路径模块的一天.真希望自己以后都可以如此的专注和高效(虽然知道很难一直都保持这样的状态,我会坚持的~哈哈哈) 言归正传,今天开发了途径点的功能和改进了些相关起点.终点的代码.先说一下我 ...