ヘッダーをスキップ
Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス
11g リリース1(11.1)
E05686-02
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

175 OWA_OPT_LOCK

OWA_OPT_LOCKパッケージには、更新内容の消失を防ぐためのコミット時ロック方策を実行するサブプログラムが含まれています。


関連項目:

このパッケージの実装の詳細は、次のマニュアルを参照してください。
  • 『Oracle Fusion Middleware Administrator's Guide for Oracle HTTP Server』

  • 『Oracle Fusion Middleware User's Guide for mod_plsql』


この章では、次の項目について説明します。


OWA_OPT_LOCKの使用方法


概要

OWA_OPT_LOCKパッケージには、更新内容の消失を防ぐためのコミット時ロック方策を実行するサブプログラムが含まれています。

これは、ユーザーが更新時に挿入した行が、同時に他のユーザーによって変更されたかどうかをチェックします。

HTTPはステートレス・プロトコルであるため、PL/SQLゲートウェイは、従来型のデータベースのロック構造を使用できません。 OWA_OPT_LOCKパッケージには、更新内容の消失問題に対処する方法が2つあります。

これらの方式は、コミット時に実行されます。これらの方式では、他のユーザーによる更新の実行は妨げませんが、介入更新が発生した場合に現行の更新を拒否します。


データ型

このデータ型は、ROWIDを保持するためのPL/SQL表です。

TYPE VCARRAY IS TABLE OF VARCHAR2(2000) INDEX BY BINARY_INTEGER

これは、OWA_TEXT.VC_ARRデータ型と異なるので注意してください。


OWA_OPT_LOCKサブプログラムの要約

表175-1 OWA_OPT_LOCKパッケージのサブプログラム

サブプログラム 説明

CHECKSUMファンクション


チェックサム値を戻します。

GET_ROWIDファンクション


ROWID値を戻します。

STORE_VALUESプロシージャ


後で検証するために、隠しフィールドに未修正の値を格納します。

VERIFY_VALUESファンクション


格納された値を修正値と照合します。



CHECKSUMファンクション

このファンクションは、指定された文字列または表内の行についてのchecksum値を戻します。表内の行の場合、このファンクションは、行内の列の値を基にしてchecksum値を計算します。このファンクションには2つのバージョンがあります。

1番目のバージョンは、指定された文字列に基づいてchecksumを戻します。これは、データベースによって実行される、純粋な32ビットchecksumで、インターネット1プロトコルに基づいています。

2番目のバージョンは、表内の行の値に基づいてchecksumを戻します。これは、不純な32ビットchecksumで、インターネット1プロトコルに基づいています。

構文

OWA_OPT_LOCK.CHECKSUM(
   p_buff        IN       VARCHAR2)
 RETURN NUMBER;

OWA_OPT_LOCK.CHECKSUM(
   p_owner       IN      VARCHAR2,
   p_tname       IN       VARCHAR2,
   p_rowid       IN       ROWID)
  RETURN NUMBER;

パラメータ

表175-2 CHECKSUMファンクションのパラメータ

パラメータ 説明

p_buff

checksumを計算するnstring。

p_owner

表の所有者。

p_tname

表の名前。

p_rowid

checksum値を計算するp_tname内の行。 VCARRAY値を適切なROWIDに変換するには、GET_ROWIDファンクションを使用します。



GET_ROWIDファンクション

このファンクションは、指定されたOWA_OPT_LOCK.VCARRAYデータ型からROWIDデータ型を戻します。

構文

OWA_OPT_LOCK.GET_ROWID(
   p_old_values      IN      vcarray)
 RETURN ROWID;

パラメータ

表175-3 GET_ROWIDファンクションのパラメータ

パラメータ 説明

p_old_values

このパラメータは、通常、HTMLフォームから渡されます。



STORE_VALUESプロシージャ

このプロシージャは、後で更新する行の列の値を格納します。この値は、非表示HTMLフォーム要素内に格納されます。

構文

OWA_OPT_LOCK.STORE_VALUES(
   p_owner        IN       VARCHAR2,
   p_tname        IN       VARCHAR2,
   p_rowid        IN       ROWID);

パラメータ

表175-4 STORE_VALUESプロシージャのパラメータ

パラメータ 説明

p_owner

表の所有者。

p_tname

表の名前。

p_rowid

値を格納する行。


使用上の注意

行を更新する前に、これらの値を現在の行の値と比較して、行の値が変更されていないことを確認してください。値が変更されている場合、そのユーザーに警告して、更新を実行するかどうかを判断してもらってください。

このプロシージャは、一連の非表示フォーム要素を生成します。

「VERIFY_VALUESファンクション」も参照してください。


VERIFY_VALUESファンクション

このファンクションは、指定された行の値が最後の問合せ以降に更新されたかどうかを検証します。 このファンクションはSTORE_VALUESプロシージャとともに使用します。

構文

OWA_OPT_LOCK.VERIFY_VALUES(
   p_old_values IN vcarray)
 RETURN BOOLEAN;

パラメータ

表175-5 VERIFY_VALUESファンクションのパラメータ

パラメータ 説明

p_old_values

次の情報を含むPL/SQL表。

  • p_old_values(1)は表の所有者を指定。

  • p_old_values(2)は表を指定。

  • p_old_values(3)は検証する行のROWIDを指定。

残りのインデックスには、表内の列の値が含まれます。

通常、このパラメータは、非表示フォーム要素上に行の値を格納するためにすでにSTORE_VALUESプロシージャをコール済のHTMLフォームから渡されます。


戻り値

他の更新が実行されていない場合はTRUEで、実行されている場合はFALSEになります。