我的问题非常简单,但我搜索得很高,但只是找到了模糊和无效的解决方案。
我正在使用Talend Data Integration。我有一个非常简单的作业设置,它将一组行从Excel文件导入Microsoft SQL数据库。
我的问题是在插入这些新行之后,我需要进一步使用它们,我需要知道它们的主键,因为它们是在插入时由数据库生成的。
我已经尝试了tMSSqlLastInsertId组件但总是返回零。 我试过从数据库中重新选择但是莫名其妙地主键也是零。即使我已经检查过以确保数据库中的条目确实设置了正确的主键。
答案 0 :(得分:2)
奇怪且明显无法解释的问题。也许是提交/锁定问题?
我的建议是重新选择不同子工作中的行,以强制在tMsqlOutput组件之后提交。对于后续输入阶段,您需要使用与数据库的差异连接,以确保输出阶段中的提交已完成。并且要小心检查输入阶段中的模式(数量,类型,列的顺序:您还有一个 - 自动键)。类似的东西:
[starting component of the subjob]--->row---->[...]-->row--->tMSSqlOutput
|
|
OnSubjobOk
|
|
\ /
'
tMSSInput---row--->[...]