Talend - 将“NULL”插入类型为“NUMBER”的数据库列

use*_*555 2 java sql database talend

我想从 CSV 文件中读取值(整数),并将它们插入到数据库表中。但是,对于表的某一列,如果从 CSV 文件接收到的值不属于某个区间,则写入数据库的值应为NULL

例如,在我的 Java 应用程序中,我这样做: insert.setNull(3, java.sql.Types.INTEGER);在这种情况下。

Talend但是,如果列类型为 'NUMBER' ,我该如何执行此操作?

Gab*_*e B 5

只需在 tFileInput 和数据库输出实例之间使用 tMap 组件来进行这个简单的转换。在该组件内,右下窗格(输出架构)上选择复选框以使您的字段可为空。请小心,因为来自 CSV 的字段默认情况下不可为空。

在此输入图像描述

最后,在右上窗格(输出转换)的目标字段(强制为空的字段)上编写一个三元表达式。例如:

(假设您的传入连接被称为input_row

(input_row.field >= 0 && input_row.field <= 3) ? <value to write if inside interval> : null
Run Code Online (Sandbox Code Playgroud)

我想说的是,如果该字段在 Talend 端和目标 DB 表上都可为空,那么无聊的 javanull就是你的朋友。