瀚高数据库

目录

环境

症状

问题原因

解决方案

报错编码

环境

系统平台:IBM:Linux on System z Red Hat Enterprise Linux 4

版本:4.5

症状

应用系统适配瀚高报错:字段为numeric,但是表达式为varchar

问题原因

在瀚高数据库中空字符串和NULL不是等价的,所以当向numeric类型的字段中存入空字符串时,会引发错误。

解决方案

由瀚高工程师编写瀚高数据库自定义转换函数,将空字符串“”转为NULL解决:

create or replace function varchar_to_numeric(varchar) returns numericas 
$$
select nullif($1::text,'')::numeric ;
$$ language sql strict;
create cast(varchar as numeric) with function varchar_to_numeric(varchar) as implicit;

报错编码

字段为numeric,但是表达式为varchar