PL/SQL の処理でスリープ(WAIT)をする方法
文書番号:20243
PL/SQL の処理内でスリープ(WAIT)を実行する方法です。
基本、速いに越したことはないのですが、処理の関係で待ちにしたいことがあったりします。
PL/SQL で待ちを設けたい場合は「DBMS_LOCK」パッケージを使用することで実現できます。
【事前準備】
-
DBMS_LOCK を実行するための権限を付与します。
SYSDBA 権限のユーザーで接続し、実際に実行するユーザーへ権限を付与します。
CONN / AS SYSDBA
GRANT EXECUTE ON DBMS_LOCK TO ユーザー名 ;
【実行方法】
-
DBMS_LOCK.SLEEP(秒数) を実行することでスリープできます。
最小値は0.01秒から指定できます。
--10秒スリープ
DBMS_LOCK.SLEEP(10);
--0.01秒スリープ
DBMS_LOCK.SLEEP(0.01);
【参考情報】
[OTN]DBMS_LOCK
http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/appdev.102/B19245-02/d_lock.htm