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数据库里刚才建立的表和表数据信息。

时间: 2024-08-28 19:05:21

SQL Server2012创建连接服务器到ORACLE11G的相关文章

团队项目:VS2013和SQL Server2012的连接使用

由于团队项目是要开发一款多人网游,所以需要用到注册页面,同时游戏内的一些实时数据也全要记录在数据库中 所以,最近学到了VS2013和SQL Server2012的连接,先附上代码: #include "stdafx.h" #include "stdlib.h" #include <stdio.h> #include <string.h> #include <windows.h> #include <sql.h> #in

SQL Server2012 创建定时作业——图文并茂,教你轻松快速创建

原文:SQL Server2012 创建定时作业--图文并茂,教你轻松快速创建 SQL Server2012 如何创建定时作业?有兴趣的可以来看下,图文并茂哦! 1.首先我们打开SQL Server代理,里面选择作业 2.右键作业,选择新建作业 3.填写一些相应的内容,名称和说明自填即可. ***需要注意的是 已启用这个勾要勾选上. 类别我们这里默认即可,按照你的需求可以进行更改. 4.选择步骤 ,点击新建 5.填写步骤名称和所运行的数据库 ***需要注意的是  命令行就是执行你的存储过程 直接

VS2013的C#项目与SQL Server2012无法连接的问题

我们一般在重新装笔记本系统之后,当重新运行VS2013中的C#项目时,会出现无法连接数据库的问题.那有可能是SQL Server2012安装的有问题了.一.SQL Server服务没有启动:二.SQL Server中sa角色不能登录(现在数据库不是混合型身份验证模式):三.SQL Server不能远程登录. 1.保证,如下图所示“允许远程连接到此服务器”前有“对钩”. 2.打开SQL Server配置管理器,保证如下图中,TCP/IP都启用了. 其他的问题查看“由Windows身份验证设置为混合

跟我学Windows Azure 使用SQL Azure创建数据库服务器,创建数据库,创建表

登陆Windows Azure门户 输入我们上一节课所注册的帐号及密码,点击登陆. 选择SQL 数据库,选择服务器 选择创建数据库服务器 设置访问数据库服务器的登陆帐号及密码 点击确定完成数据库服务器的创建. 然后我们选择我们所创建的数据库服务器 选择创建数据库. 输入我们的数据库名称,这里我的数据库名称为Teacher,因为是试用帐号,我选择服务层为BASIC最低标准吧. 然后点确定完成数据库的创建. 下来我们选择数据库的菜单.可以看到我们刚才创建的数据库. 然后我们点击我们刚创建的数据库.

SQL Server 创建链接服务器

遇到下列问题: 线上服务器A,中转服务器B,本地服务器C 数据在A上面,想在B上面操作类似 select * from [A].[database].table这样的SQL,不用去链接服务器,直接把处理结果导入B然后生成报表. 结果报错如下: 消息 7202,级别 11,状态 2,第 1 行在 sys.servers 中找不到服务器 'A'.请验证指定的服务器名称是否正确.如果需要,请执行存储过程 sp_addlinkedserver 以将服务器添加到 sys.servers. 解决思路:问题很

PL SQL Developer 客户端 连接服务器

安装完Oracle,PLSQL之后,在服务器中打开监听. 计算机右键-管理-服务和应用程序-服务-打开以Oracle开头的服务,特别是监听,这个最重要,具体如图所示. (1)配置监听的位置 开始-所有程序-Oracle_OraDb11g_home1-配置和移植工具-Net Manager,具体如下图所以,在这个页面中不但可以配置监听也可以进行服务器地址的配置.选择监听程序,可以添加监听配置监听.这个比较常见也比较熟悉就不详细写了. (2) 选择服务命名,可以进行相应的服务器配置. 对网络服务器名

SQL Server2012创建约束图解

SQLServer中有五种约束:Primary Key约束.Foreign Key约束.Unique约束.Default约束和Check约束 1 . Primary Key 约束 在表中常有一列或多列的组合,其值能唯一标识表中的每一行. 这样的一列或多列成为表的主键(PrimaryKey).一个表只能有一个主键,而且主键约束中的列不能为空值.只有主键列才能被作为其他表的外键所创建. 创建主键约束可以右键单击表,选择设计 . 选中要创建主键的列,然后单击上面的小钥匙. 也可以右键需要创建主键的列,

sqlserver用sql语句创建链接服务器

--创建 exec sp_addlinkedserver   'SHUA_LINK', '', 'SQLOLEDB', '数据库IP'  exec sp_addlinkedsrvlogin  'SHUA_LINK', 'false',null, 'sa', '密码' --查询 select top 10 * from SHUA_LINK.shua.dbo.shua_member order by regtime desc

SQL Server 创建链接服务器的脚本,自定义链路服务器的简短名称

USE [master]GO /****** Object:  LinkedServer [SQL01]    Script Date: 2020/4/9 11:51:17 ******/EXEC master.dbo.sp_addlinkedserver @server = N'SQL01', @srvproduct=N'', @provider=N'SQLNCLI', @datasrc=N'域名或者IP' /* For security reasons the linked server r