返回错误号

时间:2015-01-12 13:17:41

标签: postgresql postgresql-9.3

我想使用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一样吗?

1 个答案:

答案 0 :(得分:2)

在PL / pgSQL中,您必须trap errors并且可以raise(自定义)错误。 (错误期间正常执行停止。)

PostgreSQL中的错误具有级别error codesSQLSTATE)和显式名称。

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