使用 pentaho 数据集成的 SQL 标识列插入

Posted

技术标签:

【中文标题】使用 pentaho 数据集成的 SQL 标识列插入【英文标题】:SQL identity column insert using pentaho data integration 【发布时间】:2012-06-01 02:46:30 【问题描述】:

我是 Pentaho 数据集成工具的新手。我正在尝试将数据从源表移动到目标表......两者都是 SQL Server。这些表是相同的,并且有一个标识列。

尝试了很多选项,但是......每次说“Indentity insert is set to OFF”时都会出错

尝试在中间引入一个跃点以执行 SQL 语句到“SET identity_insert tblname ON”.. 仍然有效。

任何建议都将受到高度赞赏。

谢谢。

【问题讨论】:

你必须小心。 SET 命令只对执行它的会话有效。 这是我现在能想到的唯一选择..你的反应是有道理的。该工具是否有任何选项可以指定?? 我根本不了解 Pentaho。我只是从 SQL Server 的角度来写。你能在工具代码中写SET语句吗? 【参考方案1】:

把它放在一个跃点中肯定行不通,因为 PDI/kettle 每一步都使用一个连接。您需要将该设置放在数据库连接的高级选项中,然后就可以了 - 然后它将用于该数据库连接的所有实例。

还要确保您“共享”您的数据库连接,否则如果您在每次转换中手动创建它们,您需要将该设置应用于每个转换中的每个数据库连接。 (除非您使用的是数据库或 EE 存储库,在这种情况下,连接是集中的,所以您没问题)

【讨论】:

【参考方案2】:

您可以尝试的另一件事是从您用来从源传递到目标的选择中删除标识列。

这样,您将确保 SQL 将为尝试插入它们的每一行创建一个新标识,

【讨论】:

【参考方案3】:

你应该在数据库连接建立后添加一个命令。

【讨论】:

以上是关于使用 pentaho 数据集成的 SQL 标识列插入的主要内容,如果未能解决你的问题,请参考以下文章

Pentaho 中的 Hive 数据集成错误

如何使用 Pentaho 数据集成提取电子邮件附件?

Pentaho 数据集成输入/输出位类型错误

使用 pentaho 勺子每天更新数据库中的数据

如何自动创建 Pentaho 每日报告?

Pentaho 数据集成:错误处理