0

如何动态创建目标文件,如果 Deptno=10 则创建目标文件为 DEPT10.txt,如果 Deptno=20 则创建目标文件为 DEPT20.txt,如果 Deptno=30 则创建目标文件为 DEPT30.txt

4

1 回答 1

2

您可以通过在 Informatica 中执行以下步骤来实现此目的。

  1. 在目标“将文件名列添加到此表”中添加一个名为 out_file_name 的列。
  2. 用户排序器按部门 ID 排序。
  3. 然后使用表达式转换。在表达式转换中创建以下端口并分配表达式。这里 v_* 是变量端口,o_ 是输出端口。
v_curr_dept_id= dept_id
v_flag  = IIF(v_curr_dept_id=v_prev_dept_id,0,1)
v_prev_dept_id  = dept_id
o_flag = v_flag
o_file_name = dept_id||'.txt'
  1. 现在使用事务控件创建不同的文件。 IIF(o_flag = 1, TC_COMMIT_BEFORE, TC_CONTINUE_TRANSACTION)
  2. 在步骤 1 中将 o_file_name 链接到列 out_file_name。相应地链接其他列。
    整个映射应该是这样的 -
SQ.... SRT > EXP > TXN >TGT
于 2021-03-22T15:30:33.930 回答