データ保証レベルはUAPごとに指定できます。SQLごとにデータ保証レベルを指定したい場合は,そのSQL文に排他オプションを指定します。
データ保証レベルと排他オプションを同時に指定した場合,排他オプションの指定が有効となります。データ保証レベルと排他オプションとの関係を次の表に示します。
表4-19 データ保証レベルと排他オプションとの関係
データ保証レベル |
排他オプション |
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 EXLOCKを指定している。
データ保証レベルは,次の箇所で指定できます。
- クライアント環境定義のPDISLLVL
- ALTER PROCEDUREのSQLコンパイルオプション
- ALTER ROUTINEのSQLコンパイルオプション
- ALTER TRIGGERのSQLコンパイルオプション
- CREATE PROCEDUREのSQLコンパイルオプション
- CREATE TRIGGERのSQLコンパイルオプション
- CREATE TYPEの手続き本体のSQLコンパイルオプション
All Rights Reserved. Copyright (C) 2006, 2016, Hitachi, Ltd.