首页 > 解决方案 > 从 SSIS 2014 迁移到 2019 的 Oracle 目标的表名称格式已更改

问题描述

我们有一台使用 SQL 2014 终止生命周期的服务器。我们将 SSISDB 从 2014 年迁移到 2019 年,它似乎有效(我们确实升级了 SSISDB,它与 2019 版本匹配)。

可以执行、部署、导入包到本地机器。

一些包使用 Oracle 目标和 Oracle 源。Oracle 源代码似乎工作正常。一些 Oracle 目标不工作。

以前的版本似乎具有 schema.table 格式,并且表示未找到表。如果在 Oracle 目标编辑器中,在表名称下拉列表中,如果我单击查找表,它们现在显示为“模式”。“表”。一旦我选择了这种格式的表格,它就可以工作了。

所以我的问题是,有没有办法批量转换这些表名,还是我不得不重新选择每个目的地的每个表?

杰弗里

标签: sql-serveroraclessis

解决方案


如果您将包从 SSISDB 导入 SSDT 或 Visual Studio 中安装了正确项目类型的 Integration Services 项目,则可以编辑 dtsx 文件(只是 XML 文件)。

您可以在任何文本编辑器中打开和编辑这些文件,您可以在其中使用一些 XML/XPath 魔法来更新、RegExp 或简单的文本替换。

在开始之前,请确保您在安全的地方备份了所有文件。

我个人没有 Oracle 源代码,但您应该在 dtsx 文件中查找类似的内容:

<component
              refId="Package\(DFT) Load Data\(DST-OLEDB) Load Data into Destination"
              componentClassID="Microsoft.OLEDBDestination"
              contactInfo="OLE DB Destination;Microsoft Corporation; Microsoft SQL Server; (C) Microsoft Corporation; All Rights Reserved; http://www.microsoft.com/sql/support;4"
              description="OLE DB Destination"
              name="(DST-OLEDB) Load Data into Destination"
              usesDispositions="true"
              version="4">
              <properties>
                <property
                  dataType="System.Int32"
                  description="The number of seconds before a command times out.  A value of 0 indicates an infinite time-out."
                  name="CommandTimeout">0</property>
                <property
                  dataType="System.String"
                  description="Specifies the name of the database object used to open a rowset."
                  name="OpenRowset">[schema].[Table]</property>
                <property

推荐阅读