如何在Postgres中实现PRAGMA EXCEPTION_INIT。
............................................... .................................................. ......
ELSIF l_errcode != 0
THEN
l_dyn_sql :='DECLARE myexc EXCEPTION; ' ||
'PRAGMA EXCEPTION_INIT (myexc, ' ||
TO_CHAR (l_errcode) ||');' ||
'BEGIN RAISE myexc; END;';
EXECUTE IMMEDIATE l_dyn_sql;
END IF;
答案 0 :(得分:0)
没有等效于Oracle的PRAGMA EXCEPTION INIT
,后者用于初始化用户定义的异常。
As documented in the manual,您可以使用自定义错误消息引发异常。您也不需要动态SQL来做到这一点:
ELSIF l_errcode != 0 THEN
raise exception 'Error with number % occurred', l_errocde;
END IF;
但是您不能指定自己的错误代码。接受错误“名称”或SQLSTATE的备用语法只能与预定义的异常listed in the manual
一起使用