18.8 DMLロックについて
Oracle Application Expressで自動的なデータ操作言語(DML)を使用して、表の行を更新または削除します。
- DMLロックについて
Oracle Application Expressで自動的なデータ操作言語(DML)を使用して、表の行を更新または削除します。 - APEX_DML_LOCK_WAIT_TIME
アプリケーション置換文字列、アプリケーション・アイテムまたはページ・アイテムの値をAPEX_DML_LOCK_WAIT_TIME
に設定して、DML操作を制御します。 - FSP_DML_LOCK_ROW
アプリケーション置換文字列、アプリケーション・アイテムまたはページ・アイテムの値をFSP_DML_LOCK_ROW
に設定して、DML操作を制御します。
親トピック: アプリケーション・データの管理
18.8.1 DMLロックについて
Oracle Application Expressで自動的なデータ操作言語(DML)を使用して、表の行を更新または削除します。
Application Expressで自動DMLを使用して表の行を更新または削除する場合、次のことを行うトランザクションが開始されます。
-
行をロックする。
-
行がページに表示されてから変更されたかどうかを検証する。
-
行に対する実際の
UPDATE
文またはDELETE
文を発行する。
行のロックが頻繁に発生する環境では、DML操作を制御し、DML操作が無期限に待機するか、即時に失敗するか、または指定した期間待機するかを決定できます。
親トピック: DMLロックについて
18.8.2 APEX_DML_LOCK_WAIT_TIME
アプリケーション置換文字列、アプリケーション・アイテムまたはページ・アイテムの値をAPEX_DML_LOCK_WAIT_TIME
に設定して、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プロセスの後にリセットします。これは、表形式フォームを使用した更新および削除には影響しないことに注意してください。
親トピック: DMLロックについて
18.8.3 FSP_DML_LOCK_ROW
アプリケーション置換文字列、アプリケーション・アイテムまたはページ・アイテムの値をFSP_DML_LOCK_ROW
に設定して、DML操作を制御します。
FSP_DML_LOCK_ROW
では次の値がサポートされます。
-
値を
FALSE
に設定すると、SELECT FOR UPDATE
は発行されません。 -
値が
FALSE
以外の場合は、自動DMLを使用してUPDATE
またはDELETE
DML操作を発行すると、SELECT FOR UPDATE
のデフォルトの動作が実行されます。
親トピック: DMLロックについて