現在のセッションで有効なデフォルト トランザクション分離レベル。
有効なトランザクション分離レベルは以下のとおりです。
- RU
- READ UNCOMMITTED
- DBS制御パラメータAccessLockForUncomReadがTRUEに設定されている場合は、DELETE、INSERT、MERGE、UPDATEの各リクエストに組み込まれているSELECT操作に関する現行セッションの読み取り専用ロッキング強度をACCESSに設定します。そうでない場合、そうしたリクエストに関する読み取り専用ロッキング強度はREADのままになります。
- SR
- SERIALIZABLE
- 非テンポラル テーブルに対して実行されるすべてのSELECTリクエスト(外部SELECTリクエストかSELECT subqueryかにかかわらず)に関する現行セッションの読み取り専用ロッキング強度を、DBS制御パラメータAccessLockForUncomReadの設定に関係なく、READに設定します。
例: デフォルトのセッション分離レベルをREAD UNCOMMITTEDに設定
以下のリクエストはどちらも同じことで、現在のセッションの分離レベルをREAD UNCOMMITTEDに設定します。
SET SESSION CHARACTERISTICS AS TRANSACTION ISOLATION LEVEL RU; SET SESSION CHARACTERISTICS AS TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
例: デフォルトのセッション分離レベルをSERIALIZABLEに戻す設定
以下のリクエストはどちらも同じことで、現在のセッションの分離レベルをSERIALIZABLEに戻します。
SET SESSION CHARACTERISTICS AS TRANSACTION ISOLATION LEVEL SR; SET SESSION CHARACTERISTICS AS TRANSACTION ISOLATION LEVEL SERIALIZABLE;
例: 失敗の条件
Teradataセッション モードでこの文には、構文および意味解釈ルーチン エラーの両方が失敗応答を返します。
次のリクエストは、SUが有効な分離レベルではないので、失敗応答を返します。
SET SESSION CHARACTERISTICS AS TRANSACTION ISOLATION LEVEL SU; *** Failure 3706 Syntax error: expecting isolation level.
次のTeradataセッション モード トランザクションは、SET SESSION CHARACTERISTICS AS TRANSACTION ISOLATION LEVELはDDL文であるのに、トランザクションの最後のリクエストではなく、明示的なトランザクションではDDL文の後に書ける有効な文はEND TRANSACTION、ABORT/ROLLBACK、またはNULL文だけであるので、失敗応答を返します。
SET SESSION CHARACTERISTICS AS TRANSACTION ISOLATION LEVEL SR; SELECT * FROM table_1; *** Failure 3932 Only an ET or null statement is legal after a DDL Statement.
ANSIセッション モードでは、これらのリクエストは、失敗ではなくエラーを返します。それからシステムによりエラーの発生したリクエストはロールバックされます。
このトランザクションは以下の3種類の方法で改訂できます。
- 暗黙的トランザクションとしてTeradataセッション モードで単一文のリクエストとしてSET SESSION CHARACTERISTICS AS TRANSACTION ISOLATION LEVELリクエストを実行します。
- SET SESSION CHARACTERISTICS AS TRANSACTION ISOLATION LEVELリクエストを発行した直後に、以下のいずれかを使用してこのリクエストを含む明示的Teradataセッション モード トランザクションをコミットまたはロールバックします。
- END TRANSACTION文。
- ABORTまたはROLLBACK文。
- SET SESSION CHARACTERISTICS AS TRANSACTION ISOLATION LEVELリクエストを発行した直後に、以下のいずれかを使用してこのリクエストを含むANSIセッション モード トランザクションをコミットまたはロールバックします。
- COMMIT文。
- ABORTまたはROLLBACK文。