Talend 如何从数据库中设置上下文变量
我正在尝试从oracle数据库中的一行设置上下文变量。我已经在数据库中设置了表,如下所示:Talend 如何从数据库中设置上下文变量,talend,Talend,我正在尝试从oracle数据库中的一行设置上下文变量。我已经在数据库中设置了表,如下所示: key | variable name | BigDecimal 我还创建了一个BigDecimal上下文变量。如何将上下文变量链接到数据库以便在SQL查询中使用?如果您有一个表,该表的模式(变量名称、变量值)和每个行id专用于单个作业,那么我建议您添加第三列,使其成为(变量名称、变量值、作业名称),然后,通过简单的单个查询,您将获得当前作业的行: select variable_name
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/变量。是否需要执行某些特定操作来在表中创建键值模式?当前数据库具有列名称和值列。对于此作业,我每次都需要相同的行(表中的每一行用于单独的作业,并定期更新)。这是否改变了我应该如何以任何方式实现它?