如何在函数中获取PL PGSQL错误代码?

时间:2016-12-07 04:28:02

标签: sql postgresql plpgsql

我正在编写PL / PGSQL函数,它会产生错误。我想用 RAISE NOTICE 语句打印错误,但我不知道如何获取错误代码?什么变量保存最后一个错误?

这是我的示例代码:

IF FOUND
THEN
    BEGIN
        insert into app.company(dateinserted,name) values(now(),company_name) returning comnpany_id;
        return company_id;
    EXCEPTION
        WHEN OTHERS THEN
            RAISE NOTICE 'Insert failed with...';
            return -2;
    END;
ELSE
    RETURN -1;
END IF;

如果插入成功,此代码将返回 company_id ,如果失败则打印错误。

2 个答案:

答案 0 :(得分:4)

...
EXCEPTION
    WHEN OTHERS THEN
        RAISE NOTICE 'Insert failed with error code %', SQLSTATE;
...

了解更多in the documentation.

答案 1 :(得分:1)

包含SQLERRM以获取错误消息。