tMysqlInput查询中的上下文变量为null

时间:2018-03-15 14:24:54

标签: java mysql talend

当我想用2个上下文变量进行查询时,我的工作有问题。我用我的工作和我的组件附上照片,当我运行这份工作时,它给了我这个错误:

Exception in component tMysqlInput_1 (facebook_amazon_us)
java.lang.NullPointerException
at mava.facebook_amazon_us_0_1.facebook_amazon_us.tWaitForFile_1Process(facebook_amazon_us.java:2058)
at mava.facebook_amazon_us_0_1.facebook_amazon_us.tMysqlConnection_1Process(facebook_amazon_us.java:798)
at mava.facebook_amazon_us_0_1.facebook_amazon_us.runJobInTOS(facebook_amazon_us.java:5363)
at mava.facebook_amazon_us_0_1.facebook_amazon_us.main(facebook_amazon_us.java:5085)

我想在这份工作中做什么:我有一个包含多列的csv文件。第一个叫做Reporting_Starts。我希望从该列获得第一个注册,并将其放入查询中,以便选择:

SELECT * FROM my_table WHERE MONTH(my_table.Reporting_Starts)='"+context.month+"'. 

我无法理解为什么我的tJava_4看到变量而tMysqlInput看不到。

在我的tJava_4中,我有以下代码:

System.out.println(context.month);[My job][1][after running the job][1][tJava_3][1][tJavaRow_1][1][tMysqlInput_1 query][1]

如果您需要有关该工作的任何其他信息,请与我们联系。

谢谢!

1 个答案:

答案 0 :(得分:0)

使用你拥有的所有迭代链接,我猜测代码没有按照你期望的顺序执行。你能否做出以下改变:
tFileList_1中删除所有迭代链接 将您的工作重组为:

tMysqlConnection_1
     |
OnSubjobOk
     |
tWaitForFile_1
     |
  Iterate
     |
tFileList_1 -- Iterate -- tJava_3
                            |
                          OnSubjobOk
                            |
                   tFileInputDelimited_1 -- Main -- tJavaRow_1                                
                            |
                          OnSubjobOk
                            |
                          tMysqlInput -- tMap -- tMysqlOutput (delete mode, set a column as delete key)
                            |
                   tFileInputDelimited -- tMap -- tMysqlOutput (insert csv)
                            |
                          OnSubjobOk
                            |
                        tFileCopy

仅使用此部分进行首次测试。如果它有效,你可以添加剩下的工作。