我在不同的数据库中有两个表。表 A 中是数据,另一个表 B 中是从第一个表增量加载数据的信息。我想从表 B 加载并将上次从表 A 成功加载的日期存储在映射变量 $$LOAD_DATE
中。为了实现这一点,我从表 B 中读取日期并使用 SETVARIABLE()
表达式中的函数设置 $$LOAD_DATE
多变的。我执行此操作的端口被标记为输出并写入虚拟平面文件。我只阅读了该源的行!
然后我用这个$$LOAD_DATE
表 A 的源限定符的源过滤器中的变量仅加载早于 $$LOAD_DATE
中存储的日期的新记录。变量。
我的问题是我无法设置 $$LOAD_DATE
变量正确。它始终是日期 1753-1-1-00.00.00
,这是映射日期/时间类型变量的默认值。
如何解决这个问题?如何在该变量中存储日期并稍后在源限定符源过滤器中使用它?这可能吗?
编辑:表 A 有太多记录,无法全部读取并稍后过滤。这会非常昂贵,因此必须在源过滤器级别对它们进行过滤。
最佳答案
是的,这是可能的。
在第一个映射中,您必须初始化变量,如下所示:
在第一个 session 配置中,您必须定义成功变量分配的 session 后:
第二个映射(包含表 A)将在 session 前变量分配中配置 session 后获取变量:
它会起作用的。
关于informatica - 在表达式中设置映射变量并在源过滤器中使用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35894211/