Oracle DB で SQL ファイルをスクリプトとして実行した時に Sleep・Wait 処理を挟む

Oracle DB の操作中、Sleep・Wait 的な処理を挟めることが分かったのでやってみた。

先に、対象の環境で DBMS_LOCK 権限を付与しておく。

SYS/SYSDBA@my_oracle AS SYSDBA
GRANT EXECUTE ON DBMS_LOCK TO my_db;

次に、SQL スクリプト中で DBMS_LOCK.SLEEP() を使う。引数は秒単位の数値を入れる。

SET TIMING ON
SELECT * FROM my_table FOR UPDATE;

-- 5秒停止 : Sleep (Wait) 処理
EXECUTE DBMS_LOCK.SLEEP(5);

COMMIT;

コレで途中に5秒一時停止してから後続の処理に進める。