postgresql规范存储过程书写简要说明

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/MaBanSheng/article/details/87889867

dml执行影响行数判断语句:

get diagnostics count_=ROW_COUNT;
         if count_ =0 then
                 raise exception '%','更新失败';
         end if;

打印过程执行过程中的参数:

raise notice '%记录数',count_;

捕获异常的处理:

EXCEPTION WHEN OTHERS THEN GET STACKED DIAGNOSTICS recode_message = MESSAGE_TEXT;
        RETURN jsonb_build_object('_recode',9999,'_message',recode_message);

一个过程示例:

CREATE OR REPLACE FUNCTION rbc.pub_tojson(datajson_ character varying)
 RETURNS jsonb
 LANGUAGE plpgsql
AS $function$
declare rec record;
             orgid_ varchar(50);
             count_ integer;
             recode_message varchar(500) DEFAULT '';
begin
          ...........update/insert.........
**--update或者insert后判断操作是否成功**
        get diagnostics count_=ROW_COUNT;
         if count_ =0 then
                 raise exception '%','更新失败';
         end if;
**--获取并打印运行中的参数值**
        raise notice '%记录数',count_;
--正常return
        RETURN jsonb_build_object('_recode',0,'_message','操作成功');
**--接着写捕获异常后,赋值异常信息内容,并return**
        EXCEPTION WHEN OTHERS THEN GET STACKED DIAGNOSTICS recode_message = MESSAGE_TEXT;
        RETURN jsonb_build_object('_recode',9999,'_message',recode_message);
END;
$function$;

猜你喜欢

转载自blog.csdn.net/MaBanSheng/article/details/87889867
今日推荐