我需要在plsql块中打印插入或更新操作的时间。所以现在它给出的输出为.23
秒,我需要输出为0.23
秒。如果它大于0,那么它就可以了。
仅在小于1秒的情况下处理,并在小数前追加0。
我正在做这个
(DBMS_UTILITY.get_time - l_start_time) / 100 secs
l_start_time在操作之星处获取
l_start_time := dbms_utility.get_time;
将具有所需格式掩码的TO_CHAR
函数应用于结果。例如:
SQL> declare
2 l_start_time number := dbms_utility.get_time;
3 l_duration number;
4 l_cnt number;
5 begin
6 select count(*) into l_cnt from user_objects;
7 l_duration := (DBMS_UTILITY.get_time - l_start_time) / 100;
8 dbms_output.put_line(l_duration); --> short, unformatted
9 dbms_output.put_line(to_char(l_duration, '999G990D00')); --> short, formatted
10
11 --
12
13 select count(*) into l_cnt from all_objects;
14 l_duration := (DBMS_UTILITY.get_time - l_start_time) / 100;
15 dbms_output.put_line(l_duration); --> long, unformatted
16 dbms_output.put_line(to_char(l_duration, '999G990D00')); --> long, formatted
17 end;
18 /
,04 --> short, unformatted
0,04 --> short, formatted - that's what you'd want to see
5,89
5,89
PL/SQL procedure successfully completed.
SQL>
使用时to_char(l_duration,'999G990D00'(它将在任何持续时间内工作,无论是小于0还是大于0,这都取决于格式掩码。