16.20 - FORMAT句によるデータの構文解析の制御 - Teradata Vantage NewSQL Engine

Teradata Vantage™ データ タイプおよびリテラル

prodname
Teradata Database
Teradata Vantage NewSQL Engine
vrm_release
16.20
category
プログラミング リファレンス
featnum
B035-1143-162K-JPN

FORMAT句それ自体は、文字タイプの値を数値タイプの値に変換することはできません。この句は、結果の値の構文解析方法を部分的に制御します。

文字から数値への変換の例を、以下のテーブルにいくつか挙げます。G、D、C、およびN書式制御文字を含むFORMAT句の場合、データ書式設定ファイル(SDF)の指定にある関連項目は以下のようであると想定します。

RadixSeparator {"."}
GroupSeparator {","}
GroupingRule   {"3"}
Currency       {"$"}
ISOCurrency    {"USD"}
CurrencyName   {"US Dollars"}
文字列 変換後 結果の数値 フィールド モードで表示される結果
'$20,000.00' DECIMAL(10,2) 20000.00 20000.00
'$$$.50' DECIMAL(10,2) エラー

文字列ではただ1つの通貨だけが許可されます。

エラー
'$.50' DECIMAL(8,2) .50 .50
'.345' DECIMAL(8,3) .345 .345
'-1.234E-02' FLOAT -.01234 -.01234
'-1E.-2' FLOAT エラー

数字の指数部分の前に基数がなければなりません。

エラー
'00000000-.93' DECIMAL(12,4) エラー

基数の入った文字列内では、埋め込みダッシュは使用できません。

エラー
'-  55' INTEGER -55 -55
'E67' FLOAT 0.0 0.00000000000000E 000
'9876' DECIMAL(4,2)

FORMAT '99V99'

98.76 9876
'-123' INTEGER -123 -123
'9876' DECIMAL(4,2)

FORMAT '9(2)V9(2)'

98.76 9876
'1-2-3' INTEGER 123 123
'123-' INTEGER -123 -123
'123-  ' INTEGER -123 -123
'-1.234E 02' FLOAT -123.4 -1.23400000000000E 002
'111,222,333' INTEGER

FORMAT 'G9(I)'

111222333 0,111,222,333
'2.49US Dollars' DECIMAL(10,2)

FORMAT 'GZ(I)D9(F)BN'

2.49 2.49 US Dollars
'25000USD' INTEGER

FORMAT '9(I)C'

25000 0000025000USD

FORMAT句を指定しない変換は、SDFで定義されている、対応のデータ型のデフォルト書式を使用します。