HOME >> Tips >> Oracle

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