我有一份现有职位:
tDatabaseInput - > tMap - > tOutputDelimited
对于最后一个组件,我将需要文件的文件名基于名为TYPE的列之一(对于每一行总是相同的)。名为TYPE的列的值为“A1”,对于数据库中的所有记录都是相同的。
先谢谢
答案 0 :(得分:2)
有很多方法可以做到,但这里是最简单,更易读的工作:
https://solidgeargroup.com/gitlab_countinuous_integration_intro
tMysqlInput_1:查询表只获取如下值:
select TYPE from my_table limit 1
tSetGlobalVar_1:key = "file_name"
,value = (String)row1.type
"C:\\Users\\KKL\\Desktop\\"+((String)globalMap.get("file_name"))
答案 1 :(得分:1)
您需要两个子作品,因为根据您的流程中的列提供文件名意味着此文件名是从另一个子作品中提取的。
您应该有第一个subjob将名为TYPE的列的值转换为上下文变量
abc
TDBInput:使用选择查询
从数据库中提取不同的TYPE列 tJavaRow:由于您在输出中只有一行,您可以将此值影响到上下文变量:TDBInput->tJavaRow
然后将第一个子工作连接到第二个子工作(tDatabaseInput - > tMap - > tOutputDelimited)
,并在文件名字段中的tFileOutputDelimited中使用此上下文变量
context.myVar=input_row.myColumn;