Oracle TVF 示例

更新日期: 2005 年 12 月 5 日

对某些企业而言,将其他数据库管理系统中的数据与 Microsoft SQL Server 中存储的数据集成起来十分有用。此示例说明如何调用 Oracle 的托管代码界面,以作为 SQL Server 中的表值函数来公开任意 Oracle 查询的结果。此方法通过对 SQL Server 运行的相对简单的 SELECT 语句简化了 Oracle 和 SQL Server 之间的数据联接。

此示例包含 GetDataFromOracle 表值函数。此函数使用托管的 Oracle 提供程序对 Oracle 数据库运行任意 Oracle 查询,并以表格形式提供结果。

安装目录:驱动器:\Program Files\Microsoft SQL Server\90\Samples\Engine\Programmability\CLR\OracleTVF\

应用场景

Jane 是 Adventure Works Cycles 的开发人员。她需要将 Oracle 数据库中的数据与 数据库中存储的数据集成起来。

语言

Transact-SQL、Visual C# 和 Visual Basic。

功能

Oracle TVF 示例使用 Microsoft SQL Server 的以下功能。

应用领域 功能

整体

公共语言运行时、Oracle 托管提供程序、Transact-SQL

必备组件

在运行此示例之前,请确保安装了下列软件:

  • Microsoft SQL Server 2005 或 Microsoft SQL Server 2005 Express Edition (SQL Server Express)。您可以从 SQL Server 2005 Express Edition 文档和示例网站免费获取 SQL Server Express。
  • SQL Server 2005 数据库引擎示例。这些示例包含在 SQL Server 2005 中。您可以从 SQL Server 开发人员中心网站下载这些示例的最新版本。
  • .NET Framework SDK 2.0 或 Microsoft Visual Studio 2005。您可以免费获取 .NET Framework SDK。有关详细信息,请参阅安装 .NET Framework SDK
  • 运行 Oracle 10g 的服务器。如果安装的是早期的 Oracle 版本,则需要修改访问过的表和列,以与较旧服务器上的现有表相匹配。此示例在使用早于 10g 的 Oracle 版本、基于 x64 的硬件上可能不会正常运行。如果要在 Windows Vista 上使用此示例,请与 Oracle 客户服务代表联系,以获得有关 Windows Vista 上 Oracle 10g 可用性的信息。

生成示例

如果尚未创建强名称密钥文件 UnsafeSampleKey.snk,则请使用以下过程生成该密钥文件。

生成强名称密钥文件

  1. 打开 Microsoft Visual Studio 2005 命令提示。单击**“开始”,依次指向“所有程序”Microsoft Visual Studio 2005“Visual Studio 工具”,再单击“Visual Studio 2005 命令提示”**。

    - 或 -

    打开 Microsoft .NET Framework 命令提示。单击**“开始”,依次指向“所有程序”Microsoft .NET Framework SDK 2.0,再单击“SDK 命令提示”**。

  2. 在命令提示符下,使用更改目录 (CD) 命令将命令提示符窗口的当前文件夹更改为 Samples 文件夹。

    ms345278.note(zh-cn,SQL.90).gif注意:
    若要确定示例所在的文件夹,请单击“开始”,依次指向“所有程序”Microsoft SQL Server 2005“文档和教程”,然后单击“示例目录”。如果使用了默认安装位置,则示例将位于 <system_drive>:\Program Files\Microsoft SQL Server\90\Samples 中。
  3. 在命令提示符下,运行以下命令以生成密钥文件:

    sn -k UnsafeSampleKey.snk

    ms345278.note(zh-cn,SQL.90).gif重要提示:
    有关强名称密钥对的详细信息,请参阅 MSDN 上 Microsoft .NET 开发中心的“安全简讯:.NET Framework 中的强名称和安全性”。

生成 Oracle TVF 示例

  1. 通过使用 Visual Studio 2005 和所提供的 Visual Studio 解决方案或通过使用 Microsoft MSBuild(包括在 .NET Framework SDK 2.0 中)来编译示例。在 .NET Framework 命令提示符下运行与以下命令相似的命令:

    msbuild /nologo /verbosity:quiet /property:Configuration=Debug CS\OracleTVF.sln

  2. 确保安装了 AdventureWorks 数据库。

  3. 如果没有将 SQL Server 引擎示例安装到默认位置,请在 Scripts\InstallCS.sql 中修改脚本的 CREATE ASSEMBLY 部分中的路径,使其指向示例的安装位置。

  4. 如果您不是要使用的 SQL Server 实例的管理员,则必须让管理员授予您 CreateAssembly 权限,才能完成安装。

  5. 根据编译的是 Visual C# 项目还是 Visual Basic 项目,在 Microsoft SQL Server Management Studio 中打开 scripts\installCS.sql 或 scripts\installVB.sql 文件。运行该文件中包含的脚本,或在命令提示符窗口中运行与以下命令类似的命令:

    sqlcmd -E -I -i Scripts\InstallCS.sql

运行示例

运行 Oracle TVF 示例

  1. 在 Microsoft Management Studio 或记事本等文本编辑器中打开 Scripts\Test.sql 文件。用您使用的 Oracle 服务器名称和在该服务器上使用的凭据替换 <server name>、<user name> 和 <password>,以修改脚本。此示例设计用来与 Oracle 分发的示例数据库一起运行,并默认与用户 scott 相关联(尽管您的数据库管理员可能会要求使用不同的凭据)。在 Management Studio 中运行脚本,或从记事本保存脚本。接着在命令提示符窗口中运行与以下命令类似的命令:

    sqlcmd -E -I -i Scripts\Test.sql

删除示例

删除 Oracle TVF 示例

  1. 在 Management Studio 中打开 scripts\cleanup.sql 文件。运行该文件中包含的脚本,或在命令提示符窗口中运行以下命令:

    sqlcmd -E -I -i Scripts\cleanup.sql

注释

必须启用 SQL Server 2005 或 SQL Server Express 的公共语言运行时,此示例才能正常运行。

提供的示例仅供教学使用。这些示例不是针对生产环境设计的,也没有在生产环境中进行测试。对于这些示例,Microsoft 不提供相关的技术支持。未经系统管理员允许,不得将示例应用程序和程序集与生产 SQL Server 数据库或报表服务器相连或一起使用。