例: デフォルトのセッション分離レベルを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文。