首页 > 解决方案 > 不能在非空字段中放置空值

问题描述

我收到错误消息cannot place a null value in a not null field。在目标表中,我拥有的非空字段是“INC”,这是我的 IF 语句

IIF(LTRIM(RTRIM(SUBSTR(HEADER_INFO,3,15)))='',NULL,LTRIM(RTRIM(SUBSTR(HEADER_INFO,3,15))))

如何编写此 IF 语句,使其不发送任何空值。第二个字段是生成的文件加载 ID,我认为根据文件加载表中的信息可以。

标签: informaticainformatica-powercenterinformatica-cloud

解决方案


您不能将空值插入到没有空约束的表中。在您的函数中,您正在检查 null 以及检索结果也为 null。代替 NULL,提供任何默认值。

IIF(LTRIM(RTRIM(SUBSTR(HEADER_INFO,3,15)))='',Default_Value, LTRIM(RTRIM(SUBSTR(HEADER_INFO,3,15))))

或者您可以使用过滤器转换并限制空值流入目标


推荐阅读