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

时间:2013-12-18 17:15:19

标签: java sql database talend

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

例如,在我的Java App中,我做了:insert.setNull(3, java.sql.Types.INTEGER);

但如果列类型为“NUMBER”,我怎样才能在Talend中执行此操作?

1 个答案:

答案 0 :(得分:4)

只需在tFileInput和数据库输出实例之间使用tMap组件即可进行此简单转换。在theis组件内部的右下方窗格(输出模式)中,选中复选框以使您的字段可以为空。请注意,因为默认情况下来自CSV的字段不可为空。

enter image description here

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

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

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

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