如何在使用Pentaho Spoon进行每次INSERT之前执行SQL脚本?

时间:2012-10-16 19:14:25

标签: pentaho sybase-ase kettle

我正在尝试使用Spoon将数据库从PostgreSQL数据库迁移到Sybase安装中。

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

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

或者我是以错误的方式接近这个?

2 个答案:

答案 0 :(得分:2)

我遇到过这个问题很烦人。我最终做的是为每个具有要插入标识的表创建自定义连接定义。

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

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

布赖恩

答案 1 :(得分:0)

如果此ID用于数据仓库,您可能需要考虑使用{Dimension lookup / update}步骤(在Data Warehouse文件夹中)为您管理代理键。但是,此步骤不会选择性地添加行版本控制,如果您不需要它,这可能会很麻烦。

否则,也许您可​​以使用{Execute SQL script}步骤(内联或单独转换)来发出{SET}命令。