【问题标题】:Null and date format handling in talendtalend 中的空值和日期格式处理
【发布时间】:2016-06-17 05:57:51
【问题描述】:

我有一个带有日期字段的 excel,但 excel 中的第一行是空白的,其他几行的日期格式为 MM/dd/yyyy HH:mm:ss。 要加载到 Postgresql 表中的数据,数据类型为时间戳 yyyy-mm-dd HH:mm:ss。 无法修改excel,因为它是从云端下载的,数据直接加载到表格中。
我尝试使用 tConvert 类型,但它不能在时间戳中接受 null 或 " " 值。
我在 talend 运行时面临 Null tMap 错误。即使我尝试从字符串转换为日期格式以便在 tmap 中传递 null,它也会更改日期格式并显示错误。如何处理?

talend 结构是:
tFileInputExcel -> TMAP(date field : MM/dd/yyyy HH:mm:ss) -> tConvertType(date field : yyyy-mm-dd HH:mm:ss ) ->TMAP(yyyy-mm-dd HH:mm:ss) -> Postgresql 表

这是 Excel 屏幕截图:

【问题讨论】:

    标签: excel postgresql datetime nullpointerexception talend


    【解决方案1】:

    起初,我不太明白为什么要使用 tConvertType 组件。在定义适当的模式后,Talend 将您的数据更改为 Java Date 对象,从那一刻起,格式并不重要,当您想将其放入 Postgres 表时,您不必转换它。至少它不应该导致 NullPointerException。

    考虑以下步骤:

    示例输入文件

    我已经准备了一些带有日期值/空格/空字符串的文件,我描述的解决方案也适用于空值。

    配置 tFileInputExcel 组件

    您必须通过选中 Nullable 复选框来允许输入 null 值。您还应该检查修剪选项。

    检查输出

    将输入组件连接到 tLogRow 后,null/empty/space 值得到正确处理。

    我希望这会有所帮助。

    【讨论】:

      【解决方案2】:

      您可以在 tMAP 组件中的变量中捕获日期格式或空值处理

      那是

      var :TalendDate.formatDate("yyyy-mm-dd HH:mm:ss",row1.columnname)
      

      所以数据流是

      tFileInputExcel --->tMAP --->Postgresql 表

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-06-12
        • 1970-01-01
        • 2010-10-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多