在 PL/pgSQL 函式中,我想捕獲錯誤。例如,當我將文本轉換為數字時,出現錯誤(我在psql.
select 'a'::numeric;
ERROR: invalid input syntax for type numeric: "a"
LINE 1: select 'a'::numeric;
^
為了捕獲這個錯誤,我做了一個像這樣的 EXCEPTION 子句:
CREATE OR REPLACE FUNCTION public.to_number(input text) RETURNS numeric
AS $$
BEGIN
RETURN input::numeric;
EXCEPTION
WHEN OTHERS THEN
RETURN NULL;
END
$$
LANGUAGE plpgsql
IMMUTABLE
RETURNS NULL ON NULL INPUT
;
但是,我不喜歡條件WHEN OTHERS。
如何將錯誤訊息映射ERROR: invalid input syntax for type numeric: "a"到附錄 A. PostgreSQL 錯誤代碼中提到的錯誤訊息?
我想在轉換為時捕獲轉換錯誤numeric并且沒有其他條件(因為上面的函式是一個簡化的函式)。
我覺得我錯過了一些東西,但是什么?
uj5u.com熱心網友回復:
當您在psql中遇到錯誤時,運行
\errverbose
你會得到類似的資訊
ERROR: 22P02: invalid input syntax for type numeric: "a"
LINE 1: select 'a'::numeric;
^
LOCATION: set_var_from_str, numeric.c:6856
22P02是 SQLSTATE,檔案的附錄 A 會告訴你那是invalid_text_representation.
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/363748.html
上一篇:將Row中的專案垂直居中
下一篇:如何選擇按日期分組例外的資料?
