Kettle5 数据流中空字符串和NULL值的问题说明

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Kettle5 数据流中空字符串和NULL值的问题说明相关的知识,希望对你有一定的参考价值。

最近在给开发通过kettle倒每天的增量数据时候,发现执行报错了,提示目标表的某个字段存在not null 约束

原因:kettle默认情况下,空字符串和NULL是当做一样的。 an empty string and null are different.


复现环境说明:

  1、 kettle5

  2 、源机和目标机器 的sql_mode都是空。

  3、表结构类似下面这种

CREATE TABLE `com_t1_his` (
`t_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增ID',
`t_t1time` int(11) DEFAULT NULL COMMENT '支付时间',
`t_hash` varchar(128) NOT NULL DEFAULT '' COMMENT '随机码',
PRIMARY KEY (`t1_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1111111 DEFAULT CHARSET=utf8



解决方法: 

以kettle5为例。

技术分享图片


KETTLE_EMPTY_STRING_DIFFERS_FROM_NULL    设置为Y 保存记录

软件中对此的描述为: NULL vs Empty String. If this setting is set to Y, an empty string and null are different. Otherwise they are not.

    




以上是关于Kettle5 数据流中空字符串和NULL值的问题说明的主要内容,如果未能解决你的问题,请参考以下文章