文字データ型の暗黙変換 - Teradata Database - Teradata Vantage NewSQL Engine - 文字列演算子、TRANSLATE、暗黙的なデータ型の変換。

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

Product
Teradata Database
Teradata Vantage NewSQL Engine
Release Number
16.20
Published
2019年3月
Language
日本語
Last Update
2019-10-29
dita:mapPath
ja-JP/xzf1512079057909.ditamap
dita:ditavalPath
ja-JP/xzf1512079057909.ditaval
dita:id
B035-1145
Product Category
Software
Teradata Vantage

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