16.20 - 文字データ型の暗黙変換 - Teradata Database - Teradata Vantage NewSQL Engine

Teradata Vantage™ SQL関数、演算子、式および述部

Product
Teradata Database
Teradata Vantage NewSQL Engine
Release Number
16.20
Release Date
2019年3月
Content Type
プログラミング リファレンス
Publication ID
B035-1145-162K-JPN
Language
日本語 (日本)

TRANSLATEは、stringサーバーがsource_repertoire_nameによって暗黙指定される型と一致しない場合は、暗黙の変換を実行します。

character_string_expressionの文字に、source_repertoire_name型の対応する文字がない場合、暗黙の変換ではエラーが発生します。この点は、WITH ERRORオプションを指定した場合でも、指定しなかった場合でも変わりません。

Teradata DatabaseはリテラルをUNICODEとして扱うため、例えば以下の関数は、文字列をUNICODEからまずLATINに変換してからLATINの文字列をKANJISJISに変換します。しかし、最後の文字がLATINレパートリーに入っていないため、この変換ではエラーが発生します。

   ...
   TRANSLATE('abc ' USING LATIN_TO_KanjiSJIS WITH ERROR)   ...

エラー文字代入を実行してもかまわないのであれば、この問題を避けるために、以下の例のように、2つのレベルの変換を指定してください。

   ...
   TRANSLATE((TRANSLATE(_UNICODE 'abc' USING UNICODE_TO_LATIN WITH
ERROR)) USING LATIN_TO_KanjiSJIS WITH ERROR)

機能 結果 結果のタイプ
TRANSLATE(‘abc ’ USING UNICODE_TO_LATIN) 'abc' VARCHAR(3)

CHARACTER SET LATIN

TRANSLATE('abc' USING UNICODE_TO_UNICODE_Fullwidth) 'abc' VARCHAR(3)

CHARACTER SET UNICODE

TRANSLATE('abc ' USING UNICODE_TO_LATIN WITH ERROR)

εは、 LATIN(0x1A)の指定のエラー文字を表わします。

'abcε ' VARCHAR(4)

CHARACTER SET LATIN