我正在尝试使用 Spoon 将数据库从 PostgreSQL 数据库迁移到 Sybase 安装中。
我现在面临的问题是 Sybase 有这种模式,当你想明确设置一个 id 时,你必须启用这种模式。您必须执行命令SET IDENTITY_INSERT table_name ON
,这将启用为当前连接插入指定 id 的数据。
是否可以设置转换以在“表输出”步骤之前执行该转换,使用将用于插入数据的相同连接?
还是我以错误的方式接近这个?
我遇到了这个,这很烦人。我最终做的是为每个要插入身份的表创建一个自定义连接定义。
在自定义连接定义中,有一个高级选项卡。在高级选项卡上,有一个空间可以输入连接后立即执行的自定义 SQL。将您的 SET 语句放在那里,然后在表输出步骤中选择该连接。
这在 Sybase 和 MS SQL Server 中都是很常见的问题,我可能应该将其作为功能请求发布给 Pentaho。
布赖恩
如果此 ID 用于数据仓库,您可能需要考虑使用 {Dimension lookup/update} 步骤(在数据仓库文件夹中)为您管理代理键。但是,此步骤非可选地添加行版本控制,如果您不需要它可能会很尴尬。
否则,也许您可以使用 {Execute SQL script} 步骤(内联或单独的转换)来发出 {SET} 命令。