案例:

DECLARE

  v_errinfo     varchar(1000);

  v_errcode      varchar(100);

BEGIN

XXXXXX;---业务处理

exception

  when others then ----------异常处理

      p_result  := 0;

      v_errcode := SQLSTATE;---错误编码

      v_errinfo := SQLERRM;----详细信息

      insert into ob_proc_err

        (procname, errorcode, errorinfo)

      values

        ('pr_deloperforceassign', v_errcode, v_errinfo);-----记录到日志表

END;

 

不用加rollback,会自动回滚,pg中一个begin---end 为一个事务,exception中也不用加begin end ;

一个函数最好一个事务,若多个事务用begin---end包裹。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐