SQL Server链接服务器访问OracleWord格式.docx

上传人:b****5 文档编号:17236121 上传时间:2022-11-29 格式:DOCX 页数:11 大小:557.83KB
下载 相关 举报
SQL Server链接服务器访问OracleWord格式.docx_第1页
第1页 / 共11页
SQL Server链接服务器访问OracleWord格式.docx_第2页
第2页 / 共11页
SQL Server链接服务器访问OracleWord格式.docx_第3页
第3页 / 共11页
SQL Server链接服务器访问OracleWord格式.docx_第4页
第4页 / 共11页
SQL Server链接服务器访问OracleWord格式.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

SQL Server链接服务器访问OracleWord格式.docx

《SQL Server链接服务器访问OracleWord格式.docx》由会员分享,可在线阅读,更多相关《SQL Server链接服务器访问OracleWord格式.docx(11页珍藏版)》请在冰豆网上搜索。

SQL Server链接服务器访问OracleWord格式.docx

安装“OraOLEDB.Oracle”访问接口需要下载Oracle11gclient64位。

具体安装过程如下:

1)下载后解压zip文件到文件夹,点击setup.exe,弹出如下界面:

直接点[是]。

2)弹出如下界面:

选择[定制]选项。

点击下一步,弹出如下界面:

直接点击下一步,弹出如下界面:

选择软件安装的位置后点击下一步,弹出如下界面:

在可用产品组件窗口点击[全选]后直接点击下一步,弹出如下窗口:

在调度程序代理主机名中输入本机的主机名。

在OracleServicesforMTS中配置端口,这里直接使用默认端口,点击下一步:

OracleServicesforMicrosoftTransactionServer

OracleServicesforMTS允许客户在MTS协调事务中使用Oracle数据库作为资源管理器,从而提供了Oracle解决方案和MTS之间的强大集成。

OracleServicesforMTS用作Oracle数据库到MTS分布式交易协同器的代理。

因此,这些服务负责提供与MTS的客户端连接合并,并允许COM组件通过Oracle参与MTS交易。

此外,OracleServicesforMTS也可以操作运行在任何操作系统上的Oracle数据库(如果服务本身在Windows上运行)。

直接点击完成,开始安装客户端程序。

3)配置注册表

打开运行,输入regedit,按回车。

找到注册表项HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\MTxOCI

OracleOciLib值改为oci.dll、

OracleSqlLib值改为orasql11.dll、

OracleXaLib值改为oraclient11.dll。

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\MSDTC\MTxOCI对它做同样的修改。

4)配置完成后重新启动计算机,继续配置

在开始->

所有程序->

Oracle-OraClient11g_home1->

配置和移植工具下找到NetManager点击打开,弹出如下窗口:

点击服务命名,选择编辑–>

创建弹出网络服务名向导:

在网络服务名中输入要连接的Oracle实例名。

点击下一步:

默认选择[TCP/IP(Internet协议)]点击下一步:

输入要连接的主机名,端口号为1521,Oracle的默认端口,点击下一步:

输入服务名(关于Oracle服务名与实例名,请参考Oracle服务名与实例名.doc),点击下一步:

点击测试中的[测试]按钮,进行服务器连接测试,注意要输入正确的用户名和密码,可以直接点击完成跳过测试步骤。

1、“MSDAORA”访问接口是由MicrosoftOLEDBProviderforOracle提供的,建议不使用此接口进行链接。

通过该接口建立的链接服务器在进行查询Oracle表时会报错,在带数据类型CLOB、BLOB字段时。

错误提示如下:

“链接服务器"

"

的OLEDB访问接口"

MSDAORA"

返回了消息"

发生了一个Oracle错误,但无法从Oracle中检索错误信息。

链接服务器"

数据类型不被支持。

2、“OraOLEDB.Oracle”访问接口是由Oracle的OracleProviderforOLEDB驱动提供的。

它解决了两个数据库类型不一致的问题。

而且如果需要使用分布式事务,必须使用它来创建链接服务器。

在创建之前,在SQLServer中,链接服务器->

访问接口->

OraOLEDB.Oracle->

右键属性,选中“允许进程内”。

这一步是使我们选择的OraOLEDB.Oracle接口打开执行操作。

如未设置会报如下错误:

“无法初始化链接服务器"

null"

的OLEDB访问接口"

OraOLEDB.Oracle"

的数据源对象"

使用OracleProviderforOLEDB驱动创建sqlserver链接服务器的代码:

--建立数据库链接服务器

EXECSp_addlinkedserver

@server=N'

ORACLEDB'

--要创建的链接服务器别名

@srvproduct=N'

Oracle'

--产品名称

@provider=N'

OraOLEDB.Oracle'

--OLEDB驱动名称

@datasrc=N'

ORCL'

--数据源Oracle->

ora11g->

network->

admin->

tnsnames.ora查看

EXECSp_addlinkedsrvlogin

'

--已建立的链接服务器名

false'

--固定*/

NULL,--为每个登陆SQLSERVER的用户使用此链接服务器,则写用户名*/

scott'

--帐号(Oracle)

tiger'

--密码

EXECSp_serveroption

rpcout'

true'

rpc'

--这两个是打开rpc,rpcout的,默认为False,打开后可以支持远程更改分布式事务。

(如有分布式事务操作必须要设置)

这样我们就建好了链接服务器,已经可以通过它对Oracle数据库进行查询。

三、链接服务器的查询

查询的两种方式:

1)链接服务器别名..Oracle名.oracle表,注意使用大写;

SELECT*FROM[ORACLEDB]..[SCOTT].[EMP]

这种方式可以进行操作,优点是使用简单,一目了然,而缺点是性能太差,查询大数据量表很慢。

效率太差。

2)使用OPENQUERY;

对给定的链接服务器执行指定的传递查询。

该服务器是OLEDB数据源。

OPENQUERY可以在查询的FROM子句中引用,就象它是一个表名。

OPENQUERY也可以作为INSERT、UPDATE或DELETE语句的目标表进行引用。

但这要取决于OLEDB访问接口的功能。

尽管查询可能返回多个结果集,但是OPENQUERY只返回第一个。

示例:

A.执行SELECT传递查询

SELECT*

FROMOPENQUERY(ORACLEDB,'

SELECT*FROMSCOTT.EMP'

B.执行UPDATE传递查询

UPDATEOPENQUERY(ORACLEDB,'

SELECTENAMEFROMSCOTT.EMPWHEREEMPNO=7369'

SETENAME='

SMITH'

;

C.执行INSERT传递查询

INSERTOPENQUERY(ORACLEDB,'

VALUES(8888,'

JIAO'

'

MANAGER'

NULL,'

1990-12-1700:

00:

00.0000000'

5000.00,5000.00,10);

D.执行DELETE传递查询

DELETEOPENQUERY(ORACLEDB,'

SELECTENAMEFROMSCOTT.EMPWHEREEMPNO=8888'

);

查询方式速度几乎和在Oralce中一样快。

并且我们可以将openquery()当做表来用。

四、SQLServer链接服务器实现分布式查询

启用条件:

1、必须安装OracleServicesforMicrosoftTransactionServer;

2、必须用OracleProviderforOLEDB驱动提供的OraOLEDB.Oracle访问接口来创建链接服务;

3、必须双方启动并配置MSDTC服务,关于MSDTC服务的配置请参考:

SQLServer分布式事务配置.doc。

SETXACT_ABORTON

BEGINTRAN

UPDATEOpenquery(ORACLEDB,'

SELECT*FROMEMPWHEREEMPNO=7369'

SETCOMM=200

INSERTtest_yiyanhua.dbo.EMP

FROMtest_yiyanhua.dbo.EMP

WHEREEMPNO=7499

IF@@ERROR<

>

0

ROLLBACKTRAN

ELSE

COMMITTRAN

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 高考

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1