如何通过Informatica PowerCenter从文件名中提取多个值作为多列数据?

问题描述

我是informatica PowerCenter的新手,刚刚开始学习。寻求帮助。我的要求是:我必须从平面文件(CSV文件)中提取数据并将数据存储到Oracle Table中。目标表的某些列值应该来自提取文件名。

例如: 我的目标表如下:

USER_ID程序代码程序_Desc访问日期期限


EACRP00127 ER特别访问2015年8月2日

我输入的文件名是:2015年8月ER特别访问EACRP00127.csv

从该文件名中,我必须从CSV文件提取“ AUG 2015”作为术语,“ ER Special Visits”作为Program_Desc和“ EACRP00127”作为Program_Code。 我找到了一种使用“当前处理的文件名”的解决方案。但是有了这个,我就能从文件名中得到一个值。如何从文件名中提取3个值并存储在目标表中?寻找解决之道。谢谢。

解决方法

使用表达式转换,您可以从“当前处理的文件名”列中创建三个输出值。 因此,您可以使用“当前处理的文件名”字段从SQ获取文件名。然后,您可以将整个字符串细分为所需的字符串。

input/output = Currently Processed Filename
o_Term = substr(Currently Processed Filename,1,9)
o_Program_Desc = substr(Currently Processed Filename,10,18)
o_Program_Code = substr(Currently Processed Filename,28,11)