文档首页/ 数据湖探索 DLI/ 常见问题/ 增强型跨源连接类/ 通过DLI跨源写DWS表,非空字段出现空值异常怎么办?
更新时间:2024-11-08 GMT+08:00

通过DLI跨源写DWS表,非空字段出现空值异常怎么办?

问题现象

客户在DWS建表,然后在DLI创建跨源连接读写该表,突然出现如下异常,报错信息显示DLI向该表某非空字段写入了空值,因为非空约束存在导致作业出错。

报错信息如下:
DLI.0999: PSQLException: ERROR: dn_6009_6010: null value in column "ctr" violates not-null constraint
Detail: Failing row contains (400070309, 9.00, 25, null, 2020-09-22, 2020-09-23 04:30:01.741).

原因分析

  1. DLI源表对应字段cir为double类型。
    图1 创建源表
  2. 目标表对应字段类型为decimal(9,6)。
    图2 创建目标表
  3. 查询源表数据,发现导致问题产生的记录ctr值为1675,整数位(4位)超出所定义的decimal精度(9 – 6 = 3位),导致double转decimal时overflow产生null值,而对应dws表字段为非空导致插入失败。

处理步骤

修改目的表所定义的decimal精度即可解决。