應用系統適配瀚高報錯:欄位為numeric,但是表示式為varchar

瀚高PG實驗室發表於2022-05-16
環境
系統平臺: 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


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69994931/viewspace-2894396/,如需轉載,請註明出處,否則將追究法律責任。

相關文章