我想使用PostgreSQL 9.3版本返回错误号。
我提到了这个: - > http://www.postgresql.org/docs/9.4/static/errcodes-appendix.html
但想知道如何返回错误编号。
在SQL Server 2008 R2中,我们只使用@@ERROR
..
示例:
IF @@ERROR <> 0
BEGIN
PRINT 'Error message';
RETURN(1);
END
我的问题:我们可以在PostgreSQL中获取错误号,就像我们使用@@ERROR
进入SQL Server一样吗?
答案 0 :(得分:2)
在PL / pgSQL中,您必须trap errors并且可以raise(自定义)错误。 (错误期间正常执行停止。)
PostgreSQL中的错误具有级别error codes(SQLSTATE
)和显式名称。
F.ex:
BEGIN
-- code that can potentially raise an error
EXCEPTION
WHEN division_by_zero THEN -- trap by name
-- handle division_by_zero
WHEN SQLSTATE '22012' THEN -- trap by SQLSTATE
-- handle SQLSTATE 22012
WHEN OTHERS THEN -- trap all other error
RAISE no_data; -- raise error by name
RAISE SQLSTATE '02000'; -- raise error by SQLSTATE
END