4.6.1 データ保証レベルの指定方法
システム単位でデータ保証レベルを指定したい場合は,システム定義のpd_isolation_levelオペランドを指定します。
UAPごと,又はルーチンごとにデータ保証レベルを指定したい場合は,次の箇所のデータ保証レベルを指定します。
-
クライアント環境定義のPDISLLVL
-
ALTER PROCEDUREのSQLコンパイルオプション
-
ALTER ROUTINEのSQLコンパイルオプション
-
ALTER TRIGGERのSQLコンパイルオプション
-
CREATE PROCEDUREのSQLコンパイルオプション
-
CREATE TRIGGERのSQLコンパイルオプション
-
CREATE TYPEの手続き本体のSQLコンパイルオプション
SQLごとにデータ保証レベルを指定したい場合は,そのSQL文に排他オプションを指定します。カーソル宣言時の排他オプションと表操作時の排他オプションの関係については「カーソル宣言と排他の関係」を参照してください。
データ保証レベルと排他オプションを同時に指定した場合,排他オプションの指定が有効となります。データ保証レベルと排他オプションとの関係を次の表に示します。
データ保証レベル |
排他オプション |
---|---|
0 |
WITHOUT LOCK NOWAIT※1※3 |
1 |
WITHOUT LOCK WAIT※3 |
2 |
WITH SHARE LOCK又はEXCLUSIVE LOCK※2 |
- 注※1
-
FOR UPDATE句を指定したカーソル宣言,及びFOR UPDATE句を指定した動的SELECT文に対しては,データ保証レベルに0を指定しても無視され,1が仮定されます。
- 注※2
-
FOR UPDATE句を指定したカーソル宣言,及びFOR UPDATE句を指定した動的SELECT文に対しては,WITH EXCLUSIVE LOCKが仮定されます。
- 注※3
-
次の場合,WITH EXCLUSIVE LOCKが仮定されます。
-
FOR UPDATE句を指定したカーソル宣言,及びFOR UPDATE句を指定した動的SELECT文の実行時,クライアント環境定義PDFORUPDATEEXLOCKにYESを指定している。
-
ルーチン定義時に指定するSQLコンパイルオプションのデータ保証レベルの直後に,FOR UPDATE EXCLUSIVEを指定している。
-