2012-10-16 29 views
2

我正在尝试使用Spoon将PostgreSQL数据库中的数据库迁移到Sybase安装中。如何在使用Pentaho Spoon的每个INSERT之前执行SQL脚本?

我现在面临的问题是,Sybase有这种模式,只要你想明确地设置一个ID,你就必须启用它。您必须执行命令SET IDENTITY_INSERT table_name ON,这将启用插入指定当前连接的ID的数据。

是否可以在“表输出”步骤之前使用与将用于插入数据的相同连接来设置转换来执行该转换?

还是我接近这个错误的方式?

回答

2

我碰到过这个,很讨厌。我最终做的是为每个有插入标识的表做一个自定义连接定义。

在自定义连接定义中,有一个高级选项卡。在高级选项卡上有一个空间可以输入自定义SQL,在连接后立即执行。将您的SET语句放在那里,然后在表格输出步骤中选择该连接。

这是Sybase和MS SQL Server中常见的问题我应该将它作为功能请求发布到Pentaho。

布赖恩

+0

不错,我很高兴至少有一种方法来解决它!在Pentaho得到一些支持是很好的,在我的情况下它是一大堆桌子......我现在无法测试它,但我将你的答案标记为已接受。 – elias

0

如果此ID用于数据仓库,则可能需要考虑使用{Dimension lookup/update}步骤(位于Data Warehouse文件夹中)为您管理代理键。尽管如此,这一步非可选地增加了行版本控制,如果你不需要它,这可能会很尴尬。

否则,也许您可​​以使用{执行SQL脚本}步骤,在线或在单独的转换中发出{SET}命令。

+0

我已经试过步骤{执行SQL脚本}了,但它不会在同一事务/连接使用{表输出}工作,即使内联。我放弃使用Spoon进行此迁移,并且正在为它创建一个Groovy脚本,非常感谢您的关注。 – elias

相关问题