如何在Postgres中实现PRAGMA EXCEPTION_INIT?

时间:2018-05-09 07:33:13

标签: postgresql

如何在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;

1 个答案:

答案 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

一起使用