SQL Server2012创建连接服务器到ORACLE11G
做ETL,肯定少不了经常会从不同的数据库直接进行数据的操作,为了更好的进行跨库操作,SQL SERVER 2012拥有LinkedServer功能。前段时间写了个SQL SERVER同种数据库直接的链接数据库的链接,具体请参考:http://blog.csdn.net/waterxcfg304/article/details/42004753
下面我来介绍下如何通过SQL SERVER 2012来建立ORACLE11G的链接服务器。
一,创建链接服务
1, 创建链接服务器之前,一定要确保你的SQL SERVER服务器上有ORACLE的客户端程序或者安装了ORACLE数据库服务器。
下图可以看出我的SQL SERVER服务器上是有ORACLE11G的驱动程序的。
二,通过图形界面建立链接服务器
需要填写的信息:
1, 链接服务器:ORACLE11G,这个是随便写的
2, 服务器类型:选择ORACLEProvider for OLE DB
3, 产品名称: 写 ORACLE,一般都写这个
4, 数据源:ORCL 这ORCL不是随便写的,一定是tnsnames.ora里的服务名,还要注意listener的配置。
下面是我tnsnames.ora里的配置信息:
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST =R9HDET7.vscsh.com)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORCL)
)
)
下面是我的listener.ora的配置:
SID_LIST_LISTENER=
(SID_LIST =
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME =D:\oracle11g\app\product\11.2.0\dbhome_1)
(PROGRAM = extproc)
(ENVS ="EXTPROC_DLLS=ONLY:D:\oracle11g\app\product\11.2.0\dbhome_1\bin\oraclr11.dll")
)
(SID_DESC =
(GLOBAL_DBNAME =orcl)
(ORACLE_HOME =D:\oracle11g\app\product\11.2.0\dbhome_1)
(SID_NAME =orcl)
)
))
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY =EXTPROC1521))
(ADDRESS = (PROTOCOL = TCP)(HOST =R9HDET7.vscsh.com)(PORT = 1521))
)
)
三,链接服务器安全性配置
1,选择—〉使用此安全上下文建立链接,输入登录ORACLE数据库的用户名和密码
2,点击[确定],出现如下的错误。
四,解决[无法创建链接服务器“ORACLE11G”的 OLE DB 访问接口“OraOLEDB.Oracle”的实例。 (.NetSqlClient Data Provider)]的错误
这个问题一般是由于注册表中缺少相关信息造成的,我们只需要补全这部分信息即可解决。
解决方法如下:
1, 打开“运行”窗口,输入“regedit”,回车。
2, HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MicrosoftSQLServer\MSSQL11.MSSQLSERVER\Providers
在Providers下面一般来说是看不到OraOLEDB.Oracle这一项的,于是新建这一项。
在Providers上面右键选择New -> Key,把新增加的项改名为“OraOLEDB.Oracle”
3, 为“OraOLEDB.Oracle”这个键新增一个DWORD Value,把名字改为“AllowInProcess”
4, 为“OraOLEDB.Oracle”这个键新增一个DWORDValue,把名字改为“AllowInProcess”
5, 把“AllowInProcess”的值改为“00000001”
6,改好后的效果如图。修改即刻生效,现在就可以再去访问链接服务器上的Oracle数据库了。
7,但是这个时候我再次做链接服务器的时候,还是出现了上面同样的错误提示如下:
8,百思考不知道原因啊??突然我发现如下:链接服务器—〉访问接口—〉OraOLEDB.Oracle—〉允许进程内没有勾上,但是我想上面的配置4里已经有(为“OraOLEDB.Oracle”这个键新增一个DWORD Value,把名字改为“AllowInProcess”),不知道为什么不起作用?????,那好吧,我只好手动的勾上了。
7, 手动勾上允许进程内
8, 再次测试是否连通
从上面的这个图可以看出,已经链接成功,SQL SERVER2012和ORACLE11G服务器之间的链接服务器已经建立成功。
五,下面我来测试如何在SQL SERVER2012里通过上面建立的链接服务器查询ORACLE11G里的表数据。
1, 在ORACLE数据库里建立一个测试表
2, 我用OPENQUERY来查询ORACLE数据库里的数据如下:
select * from openquery(ORACLE11G,'SELECT * FROM TESTLINKED_SERVER')
从上面可以看出,我查询到了我再ORACLE数据库里刚才建立的表和表数据信息。
SQL Server2012创建连接服务器到ORACLE11G的更多相关文章
- SQL SERVER2012 无法连接远程服务器
SQL SERVER2012 无法连接远程服务器,报"尝试读取受保护的内存"错误. 解决方法: 运行CMD,输入 netsh winsock reset,回车.重启SSMS,搞定.
- SQL Server创建链接服务器
1.通过sql语句创建链接服务器,数据是sql server的 EXEC sp_addlinkedserver @server='test', --链接服务器别名,自定义 @srvproduct='' ...
- 跟我学Windows Azure 二 使用SQL Azure创建数据库服务器,创建数据库,创建表
登陆Windows Azure门户 输入我们上一节课所注册的帐号及密码,点击登陆. 选择SQL 数据库,选择服务器 选择创建数据库服务器 设置访问数据库服务器的登陆帐号及密码 点击确定完成数据库服务器 ...
- SQL Server 创建链接服务器
遇到下列问题: 线上服务器A,中转服务器B,本地服务器C 数据在A上面,想在B上面操作类似 select * from [A].[database].table这样的SQL,不用去链接服务器,直接把处 ...
- SQL Server2012 创建定时作业——图文并茂,教你轻松快速创建
SQL Server2012 如何创建定时作业?有兴趣的可以来看下,图文并茂哦! 1.首先我们打开SQL Server代理,里面选择作业 2.右键作业,选择新建作业 3.填写一些相应的内容,名称和说明 ...
- Navicat for SQL Server创建连接提示错误08001怎么办
创建连接之后提示如下错误 打开SQL Server配置工具,把能打开的都打开(什么远程连接,什么SQL Server Browser之类的) 你再创建连接的时候就有不止一个连接了,连那些Named P ...
- Oracle18C安装后首次创建数据库并用sql developer 创建连接和用户
注意: SQL Developer 不能用于创建Oracle数据库,只能用来连接已经创建的数据库,数据库的建立要通过Database Configuration Assistant(DBCA)来完成. ...
- SQL Server2012创建约束图解
SQLServer中有五种约束:Primary Key约束.Foreign Key约束.Unique约束.Default约束和Check约束 1 . Primary Key 约束 在 ...
- SQL Server2012如何更改服务器的名称
Problem: sql server 2012 安装完毕后,连接数据库只能使用 机器名\数据库实例 的方式,想用 localhost 或 . 作为服务器名称不可以 Solution: 参考:http ...
随机推荐
- 后台处理json数据
InputStream in = request.getInputStream(); BufferedReader br = new BufferedReader(new InputStreamRea ...
- 【awk】 处理多个文件
处理多个文件: 1. 可以在代码中指定读取某个文件, 其他的用命令行输入 while ( geline < "file.txt" > 0 ) { ...
- web前端知识体系大全【转载】
自己总结的web前端知识体系大全[欢迎补充] 1. 前言 大约在几个月之前,让我看完了<webkit技术内幕>这本书的时候,突然有了一个想法.想把整个web前端开发所需要的知识都之中在 ...
- 教你如何创建vue环境
教你如何创建vue的环境 wdnmd我操作了一万年,终于成功创建了vue的环境,现在就来讲一下,到底应该怎么操作才能成功创建vue的 第一步 : 我们应该做的不是别的,而是去官方网站下载文件 node ...
- go语言从例子开始之Example18.struct结构体
Go 的结构体 是各个字段字段的类型的集合.这在组织数据时非常有用 Example: package main import "fmt" type product struct{ ...
- Struts2中Action类的三种写法
一.普通的POJO类(没有继承没有实现)-基本不使用 POJO(Plain Ordinary Java Object)简单的Java对象,实际就是普通JavaBeans,是为了避免和EJB混淆所创 ...
- docker 安装 jenkins 笔记
前提: 已安装好 docker-ce,可运行 docker 命令 命令: sudo docker pull jenkins mkdir -p ~/dockers/jenkins cd ~/docker ...
- Requests使用
Requests 简介 Requests库 requests是一个很实用的Python HTTP客户端库,编写爬虫和测试服务器响应数据时经常会用到.可以说,**Requests 完全满足如今网络的需求 ...
- c++后台开发面试常见知识点总结(三)操作系统
静态链接库和动态链接库的区别 一个进程可以通过调用waitpid函数来等待它的子进程终止或者停止 Debug和Release的区别 临界区互斥量信号量事件进程互斥与同步 进程有哪几种状态,状态转换图, ...
- AI加持的阿里云飞天大数据平台技术揭秘
摘要:2019云栖大会大数据&AI专场,阿里云智能计算平台事业部研究员关涛.资深专家徐晟来为我们分享<AI加持的阿里云飞天大数据平台技术揭秘>.本文主要讲了三大部分,一是原创技术优 ...