我们可以从源文件名中提取日期并使用talend将其添加到db列中吗

我们可以从源文件名中提取日期并使用talend将其添加到db列中吗,talend,Talend,因此,如果我有一个包含10列的源文件,而我的目标文件包含11列,并且额外的列的类型是date。源文件包含类似“cust20201212”的名称。现在,我只想提取日期部分,并将其添加到日期类型列中的目标表列中。使用talend是否可以实现这一点。我只想将日期提取为2020-12-12和2020-12-01,并将其存储在oracle表的date列中。 在这种情况下,我们可以使用tregexextract吗?首先需要在流或变量中获取文件名。它是在上下文变量中,还是来自tFileList? 如果作业中有

因此,如果我有一个包含10列的源文件,而我的目标文件包含11列,并且额外的列的类型是date。源文件包含类似“cust20201212”的名称。现在,我只想提取日期部分,并将其添加到日期类型列中的目标表列中。使用talend是否可以实现这一点。我只想将日期提取为2020-12-12和2020-12-01,并将其存储在oracle表的date列中。
在这种情况下,我们可以使用tregexextract吗?

首先需要在流或变量中获取文件名。它是在上下文变量中,还是来自tFileList? 如果作业中有tFileList,则可以使用全局变量访问它 :
((字符串)globalMap.get(“tFileList\u 1\u CURRENT\u FILE”))

当您拥有此文件名时,您必须解析文件名以提取数据:

TalendDate.parseDate("yyyyMMdd",StringHandling.LEFT(StringHandling.RIGHT(*PLACE_HERE_FILENAME*,12),8))
StringHandling.RIGHT
获取文件名的最后一部分(8个字符+扩展名(4个字符)=12)
StringHandling.LEFT
获取此表达式的前8个字符(20201201)


然后,您可以将此新数据传递给oracle数据库。

Hi,那么我可以使用iterate将tfilelist映射到tfileinputdelimited,然后使用main将tfileinputdelimited映射到tmap,并将其设置为tfileOutDelimited,然后将此输出文件作为输入提供给数据库吗?您可以使用tfilelist>tfileinput>tmap>tdboutput。不需要在两者之间分隔TFileOutputDate。好的,架构将设置为一列,对吗?此日期将是输出架构中的一个新列(键入“date”)。它们在语法TalendDate.parseDate(“yyyyMMdd”,StringHandling.LEFT(StringHandling.right(PLACE_HERE_FILENAME,12),8)上给我一个错误,一旦我把文件名放在那里,它就会抛出一个错误
TalendDate.parseDate convert the string representing your date to an actual date.