<返回更多

SQL Server 链接Oracle 数据库实战

2022-10-30  今日头条  雪竹频道
加入收藏

概述

在某些情况下,我们希望从外部数据库中获取数据,而无需在应用程序中进行额外编码,只需编写一个 T-SQL 查询即可为我们完成所有工作。这就是微软提供的“链接服务器”功能的原因。

但默认情况下,链接服务器无法连接到 Oracle 数据库。本文中我们将展示如何安装必需的库和工具,然后我们将配置 Oracle 数据库(称为 Oracle.NET)的网络层,以最终能够创建链接服务器并查询目标数据库实例。

Oracle 数据库客户端的安装

首先,停止 SQL Server 实例。如果实例正在运行,安装不会失败,但是在第一次调用 Linked Server Provider 时,实例会挂起并且不会响应!本文中我想连接一个 Oracle Database 11g 实例。所以我将安装一个 Oracle Database 11g 客户端,但您也可以尝试安装最新版本。源文件可以在Oracle 的网站上下载。它采用 ZIP 文件的形式。下载解压缩并打开解压缩的文件夹。

 

完成后,只需点击 « setup.exe »

这将打开以下对话框。选择«自定义»

 

选择您使用的适当语言。

 

然后选择安装的目标文件夹。我个人更喜欢将其与操作系统分区分开,并且我遵循 Oracle 中的常规路径。

 

现在让我们选择适当的组件。

 

 

通过单击“下一步”按钮,您将看到以下界面:

[

 

单击“结束”并开始安装……

 

我们完成了。

 

让我们连接到 SQL Server 实例并检查它是否看到新安装的提供程序:

 

配置 Oracle Net(添加对目标 Oracle 实例的引用)

由于我们在 I:Apporacle 中安装了 Oracle 软件,因此网络配置文件将位于 I:apporacleproduct11.2.0client_1networkadmin 中。

我们将使用它来首先确定名称解析方法的优先级,定义默认域和时间间隔以验证连接是否仍处于活动状态。

为此,请在 sqlnet.ora 文件中添加以下行。

 NAMES.DIRECTORY_PATH= (TNSNAMES, HOSTNAME)NAMES.DEFAULT_DOMAIN = LOCALDOMSQLNET.EXPIRE_TIME = 30 

重要的提示

定义 NAMES.DEFAULT_DOMAIN 时,您将始终必须使用完全限定的 TNS 名称。如果您对使用不感兴趣,可以将其删除

在配置中另一个非常重要的文件是 tnsnames.ora 文件。此 tnsnames.ora 文件是一个配置文件,其中包含映射到本地命名方法的连接描述符的网络服务名称,或映射到侦听器协议地址的网络服务名称。

以下是用于创建链接服务器的内容示例。

TESTSRV.LOCALDOM = (DESCRIPTION =  (ADDRESS_LIST =   (ADDRESS = (PROTOCOL = TCP)(HOST = TestSrv.st.chulg)(PORT = 1521))  )  (CONNECT_DATA =   (SERVER = DEDICATED)   (SERVICE_NAME = TESTSRV.LOCALDOM)  ) ) 

打开 cmd.exe 并运行以下命令:

 tnsping TESTSRV 

您将收到类似于以下内容的文本:

 

创建到 Oracle 数据库实例的链接服务器

创建链接服务器最方便的方法肯定是通过 SQL Server Management Studio。为此,请连接到 SQL Server 实例并找到 « Server Objects »,单击一下,您将找到 « Linked Servers »。如果您右键单击它,您将能够创建一个新的链接服务器。

 

如下提供连接信息。作为数据源,您将使用 tnsnames.ora 文件中使用的名称(带或不带域名)。

 

在配置的安全部分,根据您的环境配置,您将选择适当的方法用于远程身份验证。

 

您还可以查看链接服务器设置以根据您的环境进行调整。

单击“确定”后,将创建链接服务器并将其添加到“链接服务器”列表中,如下所示。

 

我们可以测试链接服务器。为此,请右键单击它并选择«测试连接»。

 

如果一切都配置好,您将看到以下对话框:

 

您还可以通过查看树视图查询的表和视图:

 

最后,您可以运行以下查询:


  SELECT * FROM OPENQUERY([DBLNK_TEST] , 'select sysdate from dual') ;

小结

本文首先介绍了ORACLE客户端的安装过程,然后介绍了配置 Oracle 数据库(称为 Oracle Net)的网络层的方法,最后介绍了链接服务器的测试及查询目标数据库实例的方法。

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>