プライマリ・コンテンツに移動
Oracle® Application Expressアプリケーション・ビルダー・ユーザーズ・ガイド
リリース18.1
E98591-01
目次へ移動
目次
索引へ移動
索引

前
次

18.9 DMLロックについて

Oracle Application Expressで自動的なデータ操作言語(DML)を使用して、表の行を更新または削除します。

18.9.1 DMLロックについて

Oracle Application Expressで自動的なデータ操作言語(DML)を使用して表内の行を更新または削除すると、トランザクションが開始され、最初に行をロックして、その行がページに表示されてから変更されたかどうかを確認し、最後に行に対する実際のUPDATE文またはDELETE文を発行します。

行のロックが頻繁に発生する一部の環境では、DML操作を制御してDML操作が次の状態かどうかを判別する場合があります。

  • 無期限に待機

  • 即時に失敗

  • 指定した一定時間待機

18.9.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プロセスの後にリセットします。これは、表形式フォームを使用した更新および削除には影響しないことに注意してください。

18.9.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のデフォルトの動作が実行されます。