暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

如何在 SSIS 从Oracle 数据库导入数据

原创 樱桃小丸子 2022-11-11
2097

由于 SQL Server 的世界级报告和商业智能工具,越来越多的运行 Oracle 的商店依赖 SQL Server 来满足他们的报告需求。

幸运的是,从 Oracle 导入数据很像从其他来源导入数据,例如文本文件或另一个 SQL Server 实例。在本节中,您将了解如何使用内置的 OLE DB 提供程序和 Oracle 客户端访问 Oracle 数据库中的数据。

如何通过 SSIS 连接到 Oracle 数据库

Oracle 客户端设置

在 SSIS 中连接到 Oracle 是一个两步过程。首先安装 Oracle 客户端软件,然后使用 SSIS 中的 OLE DB 提供程序连接到 Oracle。

可以肯定的是,操作系统附带的 Microsoft 数据访问组件 (MDAC) 包括用于 Oracle 的 OLE DB 提供程序。这是用于访问 Oracle 源系统的 32 位 Microsoft 编写的 OLE DB 提供程序。但是,即使安装了 OLE DB 提供程序,也无法使用它,除非您安装了第二个组件,即 Oracle 客户端软件。事实上,当您安装 Oracle 客户端软件时,Oracle 包含一个可用于访问 Oracle 源的 OLE DB 提供程序。OLE DB 提供程序有细微的差别,本节后面会提到。

安装 Oracle 客户端软件

要安装 Oracle 客户端软件,您首先需要从 Oracle 网站WWW.ORACLE.COM找到正确的下载。单击下载,然后单击按钮下载 12c。接受许可协议并选择您的操作系统。如您所知,Oracle 有多个版本(目前是 Oracle 11g、11g Release 2、12c),每个版本都有不同版本的 Oracle 客户端。其中一些是向后兼容的,但最好使用您要连接的版本。

最好安装完整的客户端软件,以确保您拥有 OLE DB 提供程序所需的正确组件。

配置 Oracle 客户端软件

一旦您为您将连接到的 Oracle 版本和您正在运行的 Windows 平台下载并安装了正确的客户端,最后一步是将其配置为引用 Oracle 服务器。您可能需要 Oracle DBA 或 Oracle 应用程序支持团队的帮助来配置它。

有两种选择:Oracle 名称服务器或手动配置 TNS 文件。TNS 文件更常见,可在 networkADMIN 文件夹下的 Oracle 安装目录中找到。这称为 Oracle 主目录。Oracle 客户端使用 Windows 环境变量 % Path % 和 % ORACLE _ HOME % 来查找客户端文件的位置。将默认 TNS 文件替换为 Oracle 管理员提供的文件,或在其中创建一个新条目以连接到 Oracle 服务器。

典型的 TNS 条目如下所示:

[参考名称] =
(DESCRIPTION =
(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)
(HOST = [Server])(PORT = [Port Number])))
(CONNECT_DATA =
(SID = [Oracle SID Name])
)
)

用有效条目替换括号。[Reference Name] 将在 SSIS 中用于通过提供程序连接到 Oracle 服务器。

64 位注意事项

如前所述,在安装 Oracle 客户端软件后,您可以使用 SSIS 中的 Oracle 的 OLE DB 提供程序从 Oracle 源中提取数据或将数据发送到 Oracle 目标。下面将描述这些过程。但是,如果您在 64 位服务器上工作,则可能需要进行一些额外的配置。

首先,如果您想通过本机 64 位连接连接到 Oracle,则必须使用 Oracle 编写的 Oracle OLE DB 提供程序,因为 Microsoft 编写的 Oracle OLE DB 驱动程序仅在 32 位模式下可用。如果您想以本机 64 位模式连接到 Oracle,请确保您还安装了正确的 64 位 Oracle 客户端(Itanium IA64 或 X64)。尽管这对您来说可能很明显,但值得一提的是,即使您可能拥有 X64 硬件,但为了在 64 位模式下使用它,操作系统必须安装 X64 版本。

此外,即使您可能在 64 位服务器上工作,您仍然可以通过 32 位 Windows 仿真模式使用 32 位提供程序。查看本章前面“Excel 和 Access”部分中的 64 位详细信息,了解有关在 64 位计算机上如何在 32 位模式下使用包的详细信息。包执行需要使用32位版本的DTExec,在SSDT中工作时需要将项目的Run64bitRuntime属性改为False。

导入 Oracle 数据

在此示例中,别名 ORCL 用于连接到
名为 orcl 的 Oracle 数据库。您的 Oracle 管理员可以提供有关
如何设置 tnsnames.ora 文件以指向
您环境中的测试或生产数据库的更多信息。以下 tnsnames 文件条目用于
后续步骤:
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = VPC-XP)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED) (SERVICE_NAME = orcl)
))
要从 Oracle 服务器中提取数据,请执行以下步骤。这些
假设您已经安装了 Oracle 客户端并配置了 tnsnames
文件或 Oracle 名称服务器。

1. 使用 SSDT 创建一个新的集成服务项目。
2. 将数据流任务添加到设计区域。在数据流选项卡上,添加一个 OLE DB 源。将 OLE DB 源命名为 Oracle。
3. 在“连接管理器”区域中,右键单击并选择“新建 OLE DB 连接”以打开“配置 OLE DB 连接管理器”对话框。
4. 单击新建打开连接管理器对话框。从提供程序列表中选择 Microsoft OLE DB Provider for Oracle,然后单击确定。
5. 输入 tnsnames.ora 文件中的别名作为服务器名称。
6. 输入用户名和密码并勾选保存我的密码(见图 14-16)。此示例说明了连接到广泛可用的 scott 示例数据库模式。用户名为scott;密码是老虎。与您的 Oracle 管理员验证凭据。测试连接以确保一切配置正确。单击“确定”接受配置。

连接管理器

7. 在 Oracle 组件属性对话框的自定义属性部分,将 AlwaysUseDefaultCodePage 属性更改为 True。
8. 双击 Oracle Source Component 打开 OLE DB Source Editor。选择 Connection Manager 选项卡后,选择指向 Oracle 数据库的 Connection Manager。
9. 从数据访问模式下拉列表中选择表或视图。单击表或视图名称下的下拉列表以查看可用表的列表。从列表中选择“Scott”.“Dept”表。
10. 选择列选项卡以查看表中列的列表。
11. 单击预览以查看 Oracle 表中的示例数据。此时,您可以添加数据目标组件以将数据导入 SQL Server 或另一个 OLE DB 目标。这在本章的其他地方已多次演示,因此此处不再赘述。
导入 Oracle 数据非常简单,但需要注意一些事项。当前的 Microsoft ODBC 驱动程序和 Microsoft 为 Oracle 编写的 OLE DB 提供程序是为 Oracle 7 设计的。在撰写本文时,Oracle 11g 是可用的最新版本。在 7 版本之后实现的特定功能和数据类型可能无法按预期工作。有关详细信息,请参阅 Microsoft 的知识库文章 244661。如果您想利用较新的 Oracle 功能,您应该考虑使用 Oracle 编写的用于 Oracle 的 OLE DB 提供程序,它与 Oracle 客户端软件一起安装。

原文标题:Importing From Oracle In SSIS

原文链接:https://mindmajix.com/ssis/importing-from-oracle

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论