Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Talend 如何从数据库中设置上下文变量_Talend - Fatal编程技术网

Talend 如何从数据库中设置上下文变量

Talend 如何从数据库中设置上下文变量,talend,Talend,我正在尝试从oracle数据库中的一行设置上下文变量。我已经在数据库中设置了表,如下所示: key | variable name | BigDecimal 我还创建了一个BigDecimal上下文变量。如何将上下文变量链接到数据库以便在SQL查询中使用?如果您有一个表,该表的模式(变量名称、变量值)和每个行id专用于单个作业,那么我建议您添加第三列,使其成为(变量名称、变量值、作业名称),然后,通过简单的单个查询,您将获得当前作业的行: select variable_name

我正在尝试从oracle数据库中的一行设置上下文变量。我已经在数据库中设置了表,如下所示:

key     | variable
name    | BigDecimal

我还创建了一个BigDecimal上下文变量。如何将上下文变量链接到数据库以便在SQL查询中使用?

如果您有一个表,该表的模式
(变量名称、变量值)
和每个行id专用于单个作业,那么我建议您添加第三列,使其成为
(变量名称、变量值、作业名称)
,然后,通过简单的单个查询,您将获得当前作业的行:

select variable_name, variable_value from context_table where job_name = '"+jobName+"';
--jobName is varibale global exists in each Talend by defaults

如果您的表不是为服务于上下文而建模的,但您需要从该表中加载一个specefic值到上下文中,则必须使用TOracleRow执行查询,并将结果传递给tJavaRow,其代码如下:

context.myVariable = input_row.myColumn
如果要在其他查询中使用该上下文变量,则查询如下:

"select a, b, c from table1 where a = '"+context.myVariable+"'"

数据库表中必须有键、值列或类似项。然后必须使用talend中的tContextLoad组件来设置作业中的上下文变量。您还必须在您的工作或存储中定义这些上下文GOUP/变量。是否需要执行某些特定操作来在表中创建键值模式?当前数据库具有列名称和值列。对于此作业,我每次都需要相同的行(表中的每一行用于单独的作业,并定期更新)。这是否改变了我应该如何以任何方式实现它?