Doris 2.1.7 zero date问题

Viewed 52

用catalog 连接了一个mysql 使用insert into 进行数据传输的时候 报错
[CANCELLED]JdbcExecutorException: jdbc get block address: CAUSED BY: SQLException: Zero date value prohibited CAUSED BY: DataReadException: Zero date value prohibited

这个该如何解决呀

1 Answers

这是因为 JDBC 中对于该非法的 DATE/DATETIME 默认处理为抛出异常,可以通过参数 zeroDateTimeBehavior控制该行为。

可选参数为: exception,convertToNull,round, 分别为:异常报错,转为NULL值,转为 "0001-01-01 00:00:00";

需要在创建 Catalog 的 jdbc_url 把JDBC连接串最后增加 zeroDateTimeBehavior=convertToNull ,如 "jdbc_url" = "jdbc:mysql://127.0.0.1:3306/test?zeroDateTimeBehavior=convertToNull" 这种情况下,JDBC 会把 0000-00-00 或者 0000-00-00 00:00:00 转换成 null,然后 Doris 会把当前 Catalog 的所有 Date/DateTime 类型的列按照可空类型处理,这样就可以正常读取了。