| General Information |
| Library Note |
Morgan's Library Page Header
|
| How |
Oracle has four separate ways to induce a sleep into PL/SQL. They are:
The USER_LOCK package is not part of the default installation. Follow the link at page bottom to install before running the demo. |
| |
| Arguments |
set linesize 121
col package_name format a20
col argument_name format a17
col data_type format a14
col pls_type format a14
SELECT package_name, argument_name, data_type, data_length,
data_precision, pls_type
FROM all_arguments
WHERE object_name = 'SLEEP'
ORDER BY 1; |
| Precision |
set serveroutput on
DECLARE
stime TIMESTAMP(9);
etime TIMESTAMP(9);
BEGIN
stime := SYSTIMESTAMP;
dbms_backup_restore.sleep(0.01);
etime := SYSTIMESTAMP;
dbms_output.put_line(etime-stime);
stime := SYSTIMESTAMP;
dbms_drs.sleep(0.01);
etime := SYSTIMESTAMP;
dbms_output.put_line(etime-stime);
stime := SYSTIMESTAMP;
dbms_lock.sleep(0.01);
etime := SYSTIMESTAMP;
dbms_output.put_line(etime-stime);
stime := SYSTIMESTAMP;
user_lock.sleep(1);
etime := SYSTIMESTAMP;
dbms_output.put_line(etime-stime);
END;
/
DECLARE
stime TIMESTAMP(9);
etime TIMESTAMP(9);
BEGIN
stime := SYSTIMESTAMP;
dbms_backup_restore.sleep(1);
etime := SYSTIMESTAMP;
dbms_output.put_line(etime-stime);
stime := SYSTIMESTAMP;
dbms_drs.sleep(1);
etime := SYSTIMESTAMP;
dbms_output.put_line(etime-stime);
stime := SYSTIMESTAMP;
dbms_lock.sleep(1);
etime := SYSTIMESTAMP;
dbms_output.put_line(etime-stime);
stime := SYSTIMESTAMP;
user_lock.sleep(100);
etime := SYSTIMESTAMP;
dbms_output.put_line(etime-stime);
END;
/ |