我创建了一个函数来在表中插入/更新记录。数据作为参数传递给函数。处理整数/浮点数/双精度字段时面临的问题。例如,我已将 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] 删除。
我来说两句