postgres 将异常错误插入表中

Posted

技术标签:

【中文标题】postgres 将异常错误插入表中【英文标题】:postgres insert the exception error into the table 【发布时间】:2018-04-30 12:41:27 【问题描述】:

如何在下面的查询表中插入异常消息

 do $$ 
   begin
    Select (2 / 0) 

 exception when others then 

    RAISE INFO 'Error Name:%',SQLERRM;

    RAISE INFO 'Error State:%', SQLSTATE;

    Insert into TB_ERRORLOG(msg) values('Error =' || SQLERRM || SQLSTATE);
  END;

 $$ language 'plpgsql';

【问题讨论】:

a) 用分号结束 SELECT 语句 b) 不要忘记块末尾的 END c) 不要引用 plpgsql 以上插入错误信息的语句是正确的。 那你应该没事! 错误:“当”第 5 行或附近出现语法错误:其他人则出现异常 我告诉过你丢失的分号... 【参考方案1】:

以下是固定语句。

 DO $$ 
  BEGIN
    SELECT (2 / 0); 

EXCEPTION WHEN others THEN 

RAISE INFO 'Error Name:%',SQLERRM;

RAISE INFO 'Error State:%', SQLSTATE;

INSERT INTO TB_ERRORLOG(msg) VALUES ('Error =' || SQLERRM || SQLSTATE);
 END;

 $$ language plpgsql;

【讨论】:

以上是关于postgres 将异常错误插入表中的主要内容,如果未能解决你的问题,请参考以下文章

如何解决空数据库表上的乐观并发异常错误

使用 SQLKorma 获取语法异常:使用 SQL 执行查询失败

Informix 存储过程通用异常处理

在我的 PostGres 表上授予所有权限,但在尝试插入/选择时仍然收到“权限被拒绝”错误

异常时将记录插入表中

oracle 在循环中处理用户定义的异常