我的输入表有3个字段 I1,I2和I3
我必须在两个表中插入这些字段。
Table1应该有来自输入字段的I1和I2,并且它具有ID作为PK列。 表2应该有I3。外键关系表1 ID。
使用talend,我在table1中插入了前两列数据(在此表输出组件中省略了I3)并且我有自动递增的ID。现在我想将ID和I3插入表格中。
但是在第二个表输出中我看不到流中的I3列,因为我们在第一步中省略了I3。
你能帮助如何获得第二个表输出组件的I3列吗?
由于
答案 0 :(得分:1)
你应该能够通过一个带有2个输出的简单tMap来实现这个目的:
tDBInput --- tMap ---tDBOutput1
---tDBOutput2
在tMap中,您只需选择要放入正确输出的字段。 您可以在tMap(中央面板)的“Var”部分中使用Talend序列Numeric.sequence(“s1”,1,1),并将其作为ID放在2个输出中。
答案 1 :(得分:1)
我是按照以下方式做到的......
在所有工作视图中:
tMap设置:
答案 2 :(得分:0)
另一种方法是采用两步法。您可以创建两个单独的"处理线"或者在一份工作中服用。
步骤1 - l1,l2
正如@Corentin所说,第一个副作用是
tExcelInput1 -- tMap1 -- tDBOutput1 (l1, l2)
第2步 - l3
第二个子工作,可以与 tDBInput1 onSubjobOk 连接器连接,看起来像这样
tExcelInput2 -- tMap2 -- tDBOutput2 (l3)
|--- tDBInput3, lookup ID (with l1)
现在第一个subjob将所有值添加到表1.当一切正常时,l3的所有值都在l1上使用ID查找进行处理。这适用于数据库中的自动增量字段。查找看起来只是SELECT ID FROM table1
,而在 tMap 中,只需使用l3进行查找。
<强>概述强>
如果您更容易看到这份工作,请查看以下图片。
查找看起来像这样: