oracle计算过程执行时间写法

 

--在oracle写过程中很多是对数据处理,业务比较繁琐,有的需要结合job定时器使用,这样就需要知道执行过程的大概时间,不废话直接上脚本,统计单位为分钟

PROCEDURE DATA_DEAL_WITH(po_msg OUT varchar2, --结果信息
ZX_TIME OUT NUMBER --执行时间
) IS

V_BEGIN_TIME VARCHAR2(50);--过程执行开始时间
V_END_TIME VARCHAR2(50);--过程执行结束时间

--初始化
PO_MSG:='OK';
ZX_TIME:=0;
SELECT TO_CHAR(SYSDATE,'yyyy-mm-dd hh24:mi:ss') INTO V_BEGIN_TIME FROM DUAL;--执行开始时间

--循环游标 或者数据处理 在这省略

SELECT TO_CHAR(SYSDATE,'yyyy-mm-dd hh24:mi:ss') INTO V_END_TIME FROM DUAL;--执行结束时间
--统计过程执行时间 --统计单位 分钟
select round(to_number(TO_DATE(V_END_TIME,'yyyy-mm-dd hh24:mi:ss')-TO_DATE(V_BEGIN_TIME,'yyyy-mm-dd hh24:mi:ss'))*1440)
INTO ZX_TIME FROM DUAL;
EXCEPTION
WHEN E_ERROR THEN
PO_MSG:=E_ERRORMSG;
ROLLBACK;
WHEN OTHERS THEN
PO_MSG:='怀远数据处理流程异常'||SUBSTR(SQLERRM,1,400);
ROLLBACK;
END DATA_DEAL_WITH;

posted @ 2019-01-28 09:46  唯一520  阅读(1255)  评论(0编辑  收藏  举报