在oracl plsql中打印时间时,需要在前面打印0



我需要在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,这都取决于格式掩码。

最新更新