ソースの文字列(CHAR、VARCHAR、またはCLOB)がターゲットのデータ型(CHAR、VARCHAR、またはCLOB)よりも長い場合、超過した文字は切り捨てられます。
| INSERTまたはUPDATEのセッション モード | テーブルに文字の値を格納するために切り捨てられた非埋め込み文字 |
|---|---|
| ANSI | エラーが報告されます。 |
| Teradata | エラーは報告されません。 |
埋め込み文字の除去または追加は、次のルールに従って行なわれます。
| ソース文字列データ型 | length | ターゲット データ型 | 埋め込み文字 |
|---|---|---|---|
| CHAR | ターゲットよりも長い | CLOBまたはVARCHAR | 末尾の埋め込み文字は除去されます。 |
| CHAR、VARCHAR、またはCLOB | ターゲットよりも短い | CHAR | 末尾に埋め込み文字が付加されます。 |
| CHAR | すべて埋め込み文字 | CLOBまたはVARCHAR | フィールドは長さゼロに切り捨てられます。 |
例: 文字から文字への変換
次に、文字から文字への変換の例を示します。
| 文字列 | 文字列の長さ | 文字の説明 | 変換の結果 | 変換される長さ |
|---|---|---|---|---|
| 'HELLO' | 5 | CHAR(3) | 'HEL'、セッションがTeradataモードの場合 | 3 |
| エラー、セッションがANSIモードの場合 | ||||
| 'HELLO' | 5 | CHAR(7) | 'HELLO ' | 7 |
| 'HELLO' | 5 | VARCHAR(7) | 'HELLO' | 5 |
| 'HELLO ' | 7 | VARCHAR(6) | 'HELLO ' | 6 |
| 'HELLO ' | 7 | VARCHAR(3) | 'HEL'、セッションがTeradataモードの場合 | 3 |
| エラー、セッションがANSIモードの場合 |