在talend中将数据库值设置为上下文变量

时间:2012-11-20 07:36:59

标签: talend

我的工作就像这样。

  tAccessDatabse_1 ---> tFileOutputXML_1. 

现在,我的数据库有一个架构,其中包含usename和userid。我的任务是从数据库创建/发送数据到xml文件,文件名用户名,即一个文件必须为每个用户创建他/她的名字。

我尝试创建一个conetxt变量但是如何从数据库中为该上下文变量设置用户名?

2 个答案:

答案 0 :(得分:3)

  1. 从表中选择不同的用户名。
  2. 使用tFlowToIterate迭代每个用户名。 (使用主链接将表组件连接到此组件)
  3. 使用Iterate链接连接到tJava组件。
  4. 使用tjava组件将用户名分配给上下文变量。例如。如果表组件的输出行是row1,那么context.username=row1.username
  5. 使用'OnComponentOk'将tJava连接到表组件,根据where条件从表中选择数据:username='"+context variable+"'
  6. 将数据写入文件。将文件名设为"<path>\"+context.username

答案 1 :(得分:1)

tYOURDBInput -> [row1] -> tFlowToItterate -> [itterate] -> tJava -> "globalMap.put("DESC", (String)row1.column);"

如果你只有一行,那么通过

在其他地方拿起它

(String) globalMap.get("DESC")

我使用此设置来检索存储在表中的外部系统的密码,这些系统将被重新刷新。这可以防止每次密码更改时代码重建。自然保护你的桌子。