消息及异常输出 本页介绍天翼云TeleDB数据库PL/pgsql的消息及异常输出。 RAISE NOTICE teledb CREATE OR REPLACE FUNCTION f28() RETURNS VOID AS teledb $$ teledb$ DECLARE teledb$ vint INTEGER : 1; teledb$ BEGIN teledb$ RAISE NOTICE 'vint %, 随机数 %',vint,random(); teledb$ END; teledb$ $$ teledb LANGUAGE plpgsql; CREATE FUNCTION teledb SELECT f28(); NOTICE: vint 1, 随机数 0.236714988015592 f28 (1 row) 使用raise notice向终端输出一个消息,也有可能写到日志中(需要调整日志的保存级别)。 RAISE EXCEPTION teledb CREATE OR REPLACE FUNCTION f28() RETURNS VOID AS teledb $$ teledb$ DECLARE teledb$ vint INTEGER : 1; teledb$ BEGIN teledb$ RAISE EXCEPTION '程序EXCEPTION '; teledb$ 下面的语句不会再执行 teledb$ RAISE NOTICE 'vint %, 随机数 %',vint,random(); teledb$ END; teledb$ $$ teledb LANGUAGE plpgsql; CREATE FUNCTION teledb SELECT f28(); ERROR: 程序EXCEPTION 如果在事务中执行这个函数,则事务会终止(abort)。 RAISE EXCEPTION自定义ERRCODE teledb CREATE OR REPLACE FUNCTION f28() RETURNS VOID AS teledb $$ teledb$ DECLARE teledb$ vint INTEGER : 1; teledb$ BEGIN teledb$ RAISE EXCEPTION ' 程序EXCEPTION ' USING ERRCODE '23505'; teledb$ END; teledb$