postpresql 打印变量+自定义错误并返回+for循环语法模板

CREATE OR REPLACE FUNCTION p_test(p_syscd TEXT) RETURNS TEXT AS
  $BODY$    DECLARE V_STARTTIME TIMESTAMP WITHOUT TIME ZONE; ---定义任务开始时间
  V_ENDTIME TIMESTAMP WITHOUT TIME ZONE; ----定义任务结束时间
  V_ERROR   VARCHAR(1000) := '0'; ---错误的处理程序
  V_SQLERRM VARCHAR(1000);
  v_d       RECORD;
BEGIN
  FOR v_d IN (select date(zz)-1 dates, to_char(date(zz)-1, 'yyyymmdd') dtstr
    from generate_series(date_trunc('month', to_date('20150501', 'yyyymmdd')),
                         date_trunc('day', now()),
                         '1 day') as tt(zz)) loop
    BEGIN
      raise notice 'Parameter is: %', v_d.dtstr; --条件判断
      IF 1 = 1 THEN
        V_STARTTIME := NOW(); ---执行存储过程
        PERFORM V_PRC_NAME;
        V_ENDTIME := NOW();
      ELSE
        V_ERROR := V_ERROR || ',' || '作业执行条件不满足';
        RAISE EXCEPTION '%', V_ERROR;
      END IF;
    EXCEPTION
      WHEN OTHERS THEN
        V_SQLERRM := SQLERRM;
    END;
  END LOOP;
  RETURN COALESCE(V_SQLERRM, '0');
END $BODY$
  LANGUAGE 'plpgsql' VOLATILE;

select p_test('A')


结果:
[SQL]select dws.p_test ('A')

NOTICE:  Parameter is: 20150501

NOTICE:  Parameter is: 20150502

NOTICE:  Parameter is: 20150503

NOTICE:  Parameter is: 20150504

NOTICE:  Parameter is: 20150505 ....

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值