2016-12-07 57 views
2

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

这是我的示例代码:

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如果插入成功,如果失败打印错误。

回答

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

更多in the documentation.