talend 中的空值和日期格式处理
Null and date format handling in talend
我有一个带有日期字段的 excel,但 excel 中的第一行是空白的,其他几行的日期格式为 MM/dd/yyyy HH:mm:ss。
要加载到 Postgresql table 的数据,字段数据类型为 timestamp yyyy-mm-dd HH:mm:ss。
excel 无法修改,因为它是从云端下载的,数据会直接加载到 table.
我尝试使用 tConvert 类型,但它不能接受时间戳中的 null 或“”值。
我在 talend 运行时遇到 Null tMap 错误。即使我尝试从字符串转换为日期格式以便在 tmap 中传递 null,它也会更改日期格式并显示 error.How 这可以处理吗?
talend 结构是:
tFileInputExcel - > TMAP(日期字段:MM/dd/yyyy HH:mm:ss) -> tConvertType(日期字段: yyyy-mm-dd HH:mm:ss) ->TMAP(yyyy-mm-dd HH:mm:ss) -> Postgresql Table
这是 Excel 屏幕截图:
您可以在 tMAP 组件内的变量中捕获日期格式或空值处理
即
var :TalendDate.formatDate("yyyy-mm-dd HH:mm:ss",row1.columnname)
因此数据流将是
tFileInputExcel --->tMAP --->Postgresql Table
起初我不太明白为什么要使用tConvertType组件。在定义了一个合适的模式后,Talend 正在将您的数据更改为 Java 日期对象,从那时起格式就不重要了,当您想要将它放入 Postgres table 时,您不必转换它。至少它不应该导致 NullPointerException。
考虑以下步骤:
示例输入文件
我准备了一些带有日期 value/space/empty 字符串的文件,我描述的解决方案也适用于空值。
配置tFileInputExcel组件
您必须通过选中 Nullable 复选框来允许使用空值。您还应该检查 trim 选项。
检查输出
将输入组件连接到 tLogRow 后 null/empty/space 值得到正确处理。
希望对您有所帮助。
我有一个带有日期字段的 excel,但 excel 中的第一行是空白的,其他几行的日期格式为 MM/dd/yyyy HH:mm:ss。
要加载到 Postgresql table 的数据,字段数据类型为 timestamp yyyy-mm-dd HH:mm:ss。
excel 无法修改,因为它是从云端下载的,数据会直接加载到 table.
我尝试使用 tConvert 类型,但它不能接受时间戳中的 null 或“”值。
我在 talend 运行时遇到 Null tMap 错误。即使我尝试从字符串转换为日期格式以便在 tmap 中传递 null,它也会更改日期格式并显示 error.How 这可以处理吗?
talend 结构是:
tFileInputExcel - > TMAP(日期字段:MM/dd/yyyy HH:mm:ss) -> tConvertType(日期字段: yyyy-mm-dd HH:mm:ss) ->TMAP(yyyy-mm-dd HH:mm:ss) -> Postgresql Table
这是 Excel 屏幕截图:
您可以在 tMAP 组件内的变量中捕获日期格式或空值处理
即
var :TalendDate.formatDate("yyyy-mm-dd HH:mm:ss",row1.columnname)
因此数据流将是
tFileInputExcel --->tMAP --->Postgresql Table
起初我不太明白为什么要使用tConvertType组件。在定义了一个合适的模式后,Talend 正在将您的数据更改为 Java 日期对象,从那时起格式就不重要了,当您想要将它放入 Postgres table 时,您不必转换它。至少它不应该导致 NullPointerException。
考虑以下步骤:
示例输入文件
我准备了一些带有日期 value/space/empty 字符串的文件,我描述的解决方案也适用于空值。
配置tFileInputExcel组件
您必须通过选中 Nullable 复选框来允许使用空值。您还应该检查 trim 选项。
检查输出
将输入组件连接到 tLogRow 后 null/empty/space 值得到正确处理。
希望对您有所帮助。