Teradata Vantageは、2つのセッション モードをサポートします。
- ANSI
- Teradata
ANSIセッション モードでは、次のようになります。
- トランザクション処理は、ANSI/ISO SQL:2011規格で定義されているルールに従う。
- ANSI/ISO SQL規格の構文とTeradata SQL用語の両方をサポートするTeradata SQL機能の場合、ANSI/ISO SQL規格の構文が使用される。
- 文字データのデフォルトのケース指定はCASESPECIFIC。
- 文字列を切り捨てる必要がある場合は、超過した埋め込み文字が切り捨てられ、エラーはレポートされない。末尾の非ブランク文字以外の文字が切り捨てられると、切り捨て例外になります。
- カーソルは常に位置決めされる。UPDATE/DELETE ... WHERE CURRENT OF文を使用して、取り出された最新のカーソル行を更新したり削除したりすることは有効です。
- デフォルトのテーブル タイプはMULTISETで、重複行が許可される。
- TRIM関数はデフォルトで先頭と末尾の埋め込み文字を切り取る。
Teradataセッション モードでは、次のようになります。
- トランザクション処理は、ANSI/ISO SQL規格が出る前にTeradataで定義されていたルールに従う。これらのルールはたいていANSI/ISOセマンティクスに適合していますが、重要な点でANSI/ISOセマンティクスと異なっている場合もあります。
- ANSI/ISO SQL規格の構文とTeradata SQL用語の両方をサポートするTeradata SQL機能の場合、Teradata SQL構文が使用される。
- デフォルトでは、文字セットがGRAPHICの場合を除いて、文字データはNOT CASESPECIFICです。GRAPHIC文字データはデフォルトではCASESPECIFICです。
- 文字データのデフォルトのケース指定はNOT CASESPECIFIC。例外はCHARACTER (n) CHARACTER SET GRAPHIC型のデータで、この場合は必ずCASESPECIFICになります。
- 文字列を切り捨てる必要がある場合、列は自動的に切り捨てられ、切り捨ての通知は出されない。これは、切り捨てられるのが埋め込み文字であってもなくても該当します。
- カーソルが位置決めされることはない。UPDATE/DELETE ... WHERE CURRENT OF文を使用して、取り出された最新のカーソル行を更新したり削除したりすることは無効です。
- デフォルトのテーブル タイプは、テーブルにプライマリ インデックスがあるかないかに応じて異なる。PIがあるテーブルの場合はSET(重複行を許可しない)です。プライマリ インデックスのないテーブル(列パーティション テーブルを含む)の場合はMULTISET(重複行を許可する)です。
- TRIM関数はデフォルトで末尾の埋め込み文字のみを切り取る。
ケース指定はCLOBには適用されません。
トランザクションは、論理作業単位です。トランザクション内でネストされた文は、グループとして正常に実行されるか、実行されないかのいずれかです。Teradata SQLトランザクションは、単一のTeradata SQL文でもTeradata SQL文のシーケンスでもかまいません。