Oracle Application Expressで自動的なデータ操作言語(DML)を使用して、表の行を更新または削除します。
Oracle Application Expressで自動的なデータ操作言語(DML)を使用して表内の行を更新または削除すると、トランザクションが開始され、最初に行をロックして、その行がページに表示されてから変更されたかどうかを確認し、最後に行に対する実際のUPDATE
文またはDELETE
文を発行します。
行のロックが頻繁に発生する一部の環境では、DML操作を制御してDML操作が次の状態かどうかを判別する場合があります。
無期限に待機
即時に失敗
指定した一定時間待機
親トピック: DMLロックについて
アプリケーション置換文字列、アプリケーション・アイテムまたはページ・アイテムの値を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ロックについて
アプリケーション置換文字列、アプリケーション・アイテムまたはページ・アイテムの値をFSP_DML_LOCK_ROW
に設定して、DML操作を制御することもできます。FSP_DML_LOCK_ROW
では次の値がサポートされます。
値をFALSE
に設定すると、SELECT FOR UPDATE
は発行されません。
値がFALSE
以外の場合は、自動DMLを使用してUPDATE
またはDELETE
DML操作を発行すると、SELECT FOR UPDATE
のデフォルトの動作が実行されます。
親トピック: DMLロックについて