PostgreSQL存儲過程錯誤和消息的提交

語法:
RAISE level format;
level消息級別如下:
DEBUG
LOG
INFO
NOTICE
WARNING
EXCEPTION

format是字符或是字符串消息

DEBUG(向服務(wù)器日志寫信息)、LOG(向服務(wù)器日志寫信息,優(yōu)先級更高)、INFO、NOTICE、WARNING和EXCEPTION(把信息寫到服務(wù)器日志以及轉(zhuǎn)發(fā)到客戶端應(yīng)用)


案例1:
do $$
begin
    raise debug 'debug message';
    raise log 'log message';
    raise info 'info message';
    raise notice 'notice message';
    raise warning 'warning message';
    raise exception 'exception message';
end $$;

結(jié)果:由結(jié)果得知,不是所有的級別都能打印出來,只有能轉(zhuǎn)到客戶端應(yīng)用級別的才能顯示(info,notice,warning,exception)
> 信息:  info message
> 注意:  notice message
> 警告:  warning message
> 錯誤:  exception message
CONTEXT:  在RAISE的第8行的PL/pgSQL函數(shù)inline_code_block




指明使用錯誤消息:
USING option = expression   [expression設(shè)置錯誤消息文本]
默認錯誤消息為exception級別:
即當(dāng)raise拋出異常了后,在其后面緊接著設(shè)置使用的錯誤消息文本

option選項可以有以下幾種:
MESSAGE  【小于exception級別時使用】
HINT     【exception級別時可使用】
DETAIL   【exception級別時刻使用】
ERROCODE


案例1:
DO $$ 
declare
   email varchar(255) := 'info@xiodi.cn';
begin 
  -- check email for duplicate
  -- ...
  -- report duplicate email
  raise exception 'Duplicate email: %', email 
  using hint = 'Check the email again';
end $$;

結(jié)果:
> 錯誤:  Duplicate email: info@xiodi.cn
HINT:  Check the email again




案例2:
do $$ 
begin 
   
   raise SQLSTATE '2210B';
end $$
結(jié)果:
> 錯誤:  2210B


案例3:
do $$ 
begin 
   
   raise invalid_regular_expression;
end $$;
結(jié)果:
> 錯誤:  invalid_regular_expression

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容