TDSQL PostgreSQL版 消息及异常输出

postgres=# CREATE OR REPLACE FUNCTION f28() RETURNS VOID ASpostgres-# $$ postgres$# DECLAREpostgres$# v_int INTEGER := 1;postgres$# BEGIN postgres$# RAISE NOTICE ‘v_int = %, 随机数 = %’,v_int,random();postgres$# E。

相关产品
TDSQL PostgreSQL版 产品页,含版本规格、价格与购买入口。

一、RAISE NOTICE

使用 raise notice 向终端输出一个消息,也有可能写到日志中(需要调整日志的保存级别)。

二、RAISE EXCEPTION

postgres=# CREATE OR REPLACE FUNCTION f28() RETURNS VOID ASpostgres-# $$ postgres$# DECLAREpostgres$# v_int INTEGER := 1;postgres$# BEGIN postgres$# RAISE EXCEPTION '程序EXCEPTION ';postgres$# –下面的语句不会再执行postgres$# RAISE NOTICE 'v_int = %, 随机数 = %',v_int,random(); postgres$# END;postgres$# $$postgres-# LANGUAGE plpgsql;CREATE FUNCTIONpostgres=# SELECT f28();ERROR: 程序EXCEPTION

如果在事务中执行这个函数,则事务会终止(abort)。

三、RAISE EXCEPTION 自定义 ERRCODE

postgres=# CREATE OR REPLACE FUNCTION f28() RETURNS VOID ASpostgres-# $$ postgres$# DECLAREpostgres$# v_int INTEGER := 1;postgres$# BEGIN postgres$# RAISE EXCEPTION ' 程序EXCEPTION ' USING ERRCODE = '23505';postgres$# END;postgres$# $$postgres-# LANGUAGE plpgsql;CREATE FUNCTIONpostgres=# SELECT f28();ERROR: 程序EXCEPTION

日志中会记录这个 ERRCODE。

2017-10-03 18:40:16.710 CST,"pgxz","postgres",15072,"[local]",59d33b65.3ae0,225,"idle",2017-10-03 15:25:25 CST,4/367159,0,LOG,00000,"statement: SELECT f28();",,,,,,,,,"psql"2017-10-03 18:40:16.710 CST,"pgxz","postgres",15072,"[local]",59d33b65.3ae0,226,"SELECT",2017-10-03 15:25:25 CST,4/367159,0,ERROR,23505," 程序EXCEPTION ",,,,,,,,,"psql"

赞 (0)
上一篇 4天前
下一篇 4天前