0

我已使用 ODI 迁移工具将 ODI 项目从 ODI 11.1.1.7 迁移到 12.2.1。

源是 XML 文件,目标是 Oracle 12c 数据库。

在迁移的项目中,我可以看到一些接口发生了巨大变化。

还创建了其他对象。Default_DS_AP 和 Default_DS1_AP 对象在接口的目标组中创建。看起来这用于使用 LKM SQL 将数据从 Source 加载到 Target 对象到 Oracle。

但是在迁移过程中,我可以看到创建 C$ 表时,它会使用一些与目标表不匹配的唯一表名来创建。

对于一些我只有 1 个 DEAFULT_DS_AP 对象的界面,我可以看到使用正确的目标表名称创建的 C$ 加载对象。

但是,如果接口的物理选项卡中存在 2 个 DEFAULT_DS 对象,则使用 C$_0DEFAULT_DS、C$_0DEFAULT_DS1 创建加载表。

如何获得正确的表名,例如 C$_0ADDNUMEBRS,其中 ADDNUMBERS 是我的表名?

此外,加载表没有正确创建,它被弄乱了,因此 IKM 查询没有得到正确执行。

对此的任何帮助都是有帮助的

4

1 回答 1

0

从 11g 升级到 12c 时,ODI 将在您的所有映射中使用数据集。这就是您在物理设计中看到额外的 Default_DS_AP 和 Default_DS1_AP 节点的原因。但是,您可以删除这些数据集并改用流范式(请参阅http://www.rittmanmead.com/2015/04/di-tips-odi-convert-to-flow/)。

不过,这可能无法解决您的目标表名称问题。使用 12c,ODI 现在允许在一个映射中拥有多个目标。这意味着在所有情况下都不能再将目标表名用作临时名称。相反,ODI 在创建 C$_ 表的 LKM 步骤中使用数据传输之前的最后一个组件的名称。可以更改它以恢复以前的行为,但它需要在每个映射中进行一些更改(可以在 Groovy 或 KM 中实现自动化。您将在此博客文章中找到更多详细信息。

于 2016-07-08T11:03:11.513 回答