如何检查 DATE 数据类型中的空指针异常

How do i check null pointer exception in DATE data type

我们有 Talend Data Integration 工具,它在将信息从源系统发送到目标系统时使用 eclipse 代码。 获取错误

Exception in component tMap_1

    java.lang.NullPointerException
        at bigdata.copy_of_readsysproandsendmail_0_1.Copy_of_ReadSysproAndSendMail.tJDBCInput_2Process(Copy_of_ReadSysproAndSendMail.java:1937)
        at bigdata.copy_of_readsysproandsendmail_0_1.Copy_of_ReadSysproAndSendMail.runJobInTOS(Copy_of_ReadSysproAndSendMail.java:5086)
        at bigdata.copy_of_readsysproandsendmail_0_1.Copy_of_ReadSysproAndSendMail.main(Copy_of_ReadSysproAndSendMail.java:4885)

        at bigdata.copy_of_readsysproandsendmail_0_1.Copy_of_ReadSysproAndSendMail.tJDBCInput_2Process(Copy_of_ReadSysproAndSendMail.java:2098)
    at bigdata.copy_of_readsysproandsendmail_0_1.Copy_of_ReadSysproAndSendMail.runJobInTOS(Copy_of_ReadSysproAndSendMail.java:5355)
    at bigdata.copy_of_readsysproandsendmail_0_1.Copy_of_ReadSysproAndSendMail.main(Copy_of_ReadSysproAndSendMail.java:5154)
Job Copy_of_ReadSysproAndSendMail ended at 23:16 03/10/2016. [exit code=0]

输入:

日期数据类型是 tmap 组件中空值的来源

DNDB date type(source) ---->row1.DNDB(output) is Date data type. both are nullable.

我们试过了: 但是对我们没有用。

避免空值
row1.DNDB==null?"null":row1.DNDB

row1.DNDB==null?"null":row1.DNDB 无法工作:您正在为输出值分配 "null" (字符串,带双引号)或 row1.DNDB ,这应该是一个日期。您将在编译中出现强制转换异常。

你可以试试:

Relational.ISNULL(row1.DNDB)?null:row1.DNDB

如果您想要日期 return 类型; 或

Relational.ISNULL(row1.DNDB)?"null":TalendDate.formatDate("yyyy-MM-dd HH:mm:ss",row1.DNDB) 

如果两个值都需要一个字符串 return 类型。

同时检查您的输出列是否标记为可为空(复选框)