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

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

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
17.00
Published
2020年6月
Language
日本語
Last Update
2021-03-30
dita:mapPath
ja-JP/tpt1555966086716.ditamap
dita:ditavalPath
ja-JP/tpt1555966086716.ditaval
dita:id
B035-1145
Product Category
Software
Teradata Vantage

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