ホーム > 高度なプログラミング手法 > DMLロックの概要
DMLロックの概要 |
![]() 前へ |
![]() 次へ |
自動的なデータ操作言語(DML)が表内の行を更新または削除するためにOracle Application Expressで使用される場合、トランザクションが開始されるとまず行をロックし、ページに表示されてから変更されたかどうかを確認して、最後に行に対するUPDATE
またはDELETE
文を発行します。
行のロックが頻繁に発生する一部の環境では、DML操作を制御してDML操作が次の状態かどうかを判別する場合があります。
無期限に待機
即時に失敗
指定した一定時間待機
アプリケーション置換文字列、アプリケーション・アイテムまたはAPEX_DML_LOCK_WAIT_TIME
というページ・アイテムの値を設定すると、このオプションを制御できます。次の値がサポートされています。
NULLの場合(デフォルト)、Oracle Application Expressの以前のバージョンと同じ動作、つまり、無期限に待機します。
0の場合、他のデータベース・セッションによって行がロックされていると、即時に失敗します。
0以上で行がロックされている場合、指定した秒数間待機します。
アプリケーションで設定する場合、APEX_DML_LOCK_WAIT_TIME
の値はアプリケーション全体の自動DMLを使用するすべてのUPDATE
およびDELETE
DML操作に適用されます。特定の自動DMLプロセスを制御するには、自動DMLプロセスの前にAPEX_DML_LOCK_WAIT_TIME
の値を更新して、自動DMLプロセスの後にリセットします。これは、表形式フォームを使用した更新および削除には影響しないことに注意してください。