語法:
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
PostgreSQL存儲過程錯誤和消息的提交
?著作權(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ù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- 成長記錄-連載(三十六) ——我的第一篇五千字長文,說了什么,你一定想不到 并不是不想每天寫公眾號,而是之前思考怎...