首页 > 解决方案 > Datastage 多参数(条件)查询执行

问题描述

我想创建一个作业,而不是基于表 A 中的某些值,在表 B 中执行选择查询,其中 WHERE CONDITION 必须是参数化的。

例如:我在 A 中有 10 列,填充了 100 行。我的 9 列可以为空,因此我必须创建一个查询来控制值的可空性,如果为空,则不得将其视为 Select 语句中的研究标准。

我考虑过使用 SPARSE 查找,如果它们不为空,我将传递一个字符串,该字符串由研究参数的连接创建,但作业失败,因为您需要映射列。

我什至创建了一个将查询作为字符串的文件,然后循环该文件并将字符串作为变量传递给 DB2 连接器阶段。它有效......但我有超过 10000 行意味着 10000 个查询......不是那么快。

谢谢你的帮助。

PS:我对这些东西很陌生:D

标签: db2sparse-matrixlookupdatastage

解决方案


您可以做的是在源/目标阶段使用 Before SQL 选项。也就是说,您的工作将至少有两个阶段。一个源 db2 阶段和一个副本或顺序或窥视​​阶段作为目标或行生成器和目标 db2 连接器。

在您的输入 db2 连接器中,您可以将您的 sql 脚本作为参数传递给 before sql,前提是它是预先生成的,并将其作为值传递给您的 db2 连接器的 before sql。您的实际 sql 语句将使用“虚拟”脚本,例如“从 sysibm.sysdummy1 中选择当前日期”来完成您的执行。

希望这是有道理的。


推荐阅读