sql-server - 从 SSIS 2014 迁移到 2019 的 Oracle 目标的表名称格式已更改
问题描述
我们有一台使用 SQL 2014 终止生命周期的服务器。我们将 SSISDB 从 2014 年迁移到 2019 年,它似乎有效(我们确实升级了 SSISDB,它与 2019 版本匹配)。
可以执行、部署、导入包到本地机器。
一些包使用 Oracle 目标和 Oracle 源。Oracle 源代码似乎工作正常。一些 Oracle 目标不工作。
以前的版本似乎具有 schema.table 格式,并且表示未找到表。如果在 Oracle 目标编辑器中,在表名称下拉列表中,如果我单击查找表,它们现在显示为“模式”。“表”。一旦我选择了这种格式的表格,它就可以工作了。
所以我的问题是,有没有办法批量转换这些表名,还是我不得不重新选择每个目的地的每个表?
杰弗里
解决方案
如果您将包从 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
推荐阅读
- azure - 使用来自多个区域的 Application Insights
- javascript - 打字稿+模块+ window.app_namespace.MyClass(js命名空间)?
- javascript - 如何将文本输入字段值获取为 const 并将该值记录在 Cypress.io 中
- python - 如何使用 pandas 同时从 csv 中提取两个值?(两列,同一行)
- android - 如何创建这种类型的布局
- javascript - 为 Gcloud AutoML Vision API 验证 Javascript 程序
- mysql - MYSQL - 从每个不同的 id 获取最后一个结果
- gradle - 如何从 Gradle 调用 sbt 任务?
- javascript - 在 d3.js 中制作条形图。如何将单个对象中的值放入一个栏中?
- swift - 单元测试 - 未在构建设置中显示 TEST_TARGET_NAME