处理函数中整数字段的 NULL 值

帕尔苏

我创建了一个函数来在表中插入/更新记录。数据作为参数传递给函数。处理整数/浮点数/双精度字段时面临的问题。例如,我已将 Empno 字段声明为 Int(根据目标表结构)。所以我想当一个空值出现时,我使用 cast 函数将其转换为 '0'。但它甚至不接受 NULL 值,因为它被声明为 Int。我应该将声明更改为 varchar 然后转换吗?我应该怎么办 ?请帮忙

我得到的错误是运算符不存在:文本整数 42883

示例代码:

create function test (text[])  
declare  
companycode varchar(4);  
empno varchar(10);  
begin  
L_1 := $1[1];  
L_2 :=cast(NULLIF($1[2],0) as int);  
update and insert statement ...  
end;  
宫本兔

NULLIF()将指定值更改为NULL,而不是反之亦然。使用IFNULL()COALESCE()代替。

还要先将操作顺序更改为 CAST,如下所示:

COALESCE($1[2]::int, 0)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章