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

来源:互联网 发布:java 游戏设计教程pdf 编辑:程序博客网 时间:2024/06/09 15:01
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: 20150501NOTICE:  Parameter is: 20150502NOTICE:  Parameter is: 20150503NOTICE:  Parameter is: 20150504NOTICE:  Parameter is: 20150505 ....

原创粉丝点击