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

Nul*_*lik 3 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;
Run Code Online (Sandbox Code Playgroud)

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

kli*_*lin 5

...
EXCEPTION
    WHEN OTHERS THEN
        RAISE NOTICE 'Insert failed with error code %', SQLSTATE;
...
Run Code Online (Sandbox Code Playgroud)

在文档中阅读更多内容。