17.10 - 文字データ型の暗黙変換 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQL関数、式、および述部

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Release Date
2021年7月
Content Type
プログラミング リファレンス
Publication ID
B035-1145-171K-JPN
Language
日本語 (日本)

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

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

Vantageはリテラルを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