oracle中如何得到执行存储过程的开始和结束时间

我现在需要得到 执行一个存储过程的开始时间和执行成功后的结束时间,我该怎么做啊,不要用工具,直接用sql语句或者函数 ,触发器之类的 ,有知道的请立马回复我哦,很急的...

需要在存储过程中定义的时候把开始执行时间和结束时间打印出来。

举例如下:

创建存储过程:

create or replace procedure p_test
as
v_begintime varchar2(20);
v_endtime varchar2(20);
v_str varchar2(10);
begin
  v_begintime:=to_char(sysdate,'yyyy-mm-dd hh24:mi:ss');
  select 'badkano' into v_str from dual;
  v_endtime:=to_char(sysdate,'yyyy-mm-dd hh24:mi:ss');
  dbms_output.put_line('开始时间为:'||v_begintime);
  dbms_output.put_line('结束时间为:'||v_endtime);
end;
end;

执行存储过程:

begin
  p_test;
end;

执行结果:

说明:由于样例存储过程过于简单,但在进行过多数据处理的时候,看到的结果会比较明显。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-12-06
在存储过程的最前面获取一个时间,在最后面获取一个时间,2个时间相减如果是0不要怀疑这个做法,没有万条以上的记录测试应该看不出时间差
第2个回答  2012-02-24
在存储过程开始、结束的时候输出时间就可以了啊
dbms_output.put_line('begin :'||to_char(sysdate,'yyyymmdd hh24:mi:ss');