処理を開始する前に、数値の記述節がFORMAT句についてスキャンされます。これは基数分離文字、グループ分離文字、通貨記号または文字列、サインゾーン(S)、または暗黙小数点(V)書式設定を決定するために使用されます。
変換は、文字ごとに左から右へと数値の終わりまで順番に行なわれます。
すべて数値の文字列だけを文字書式から数値書式に変換できます。例えば、文字列‘US Dollars 123456’または‘123456’を整数値123456に変換することはできますが、文字列‘EX1AM2PL3E’を数値に変換することはできません。
次のリストに、文字タイプ データを数値タイプに変換するためのステップを示します。GRAPHIC文字タイプのcharacter_expressionを数値に変換できないことに注意する必要があります。
変換は前のステップに戻ることなく順番に行なわれますが、ステップは飛ばされることがあります。
- 先行の埋め込み文字は無視されます。符号付きゾーン小数の入力を除いて、先行の埋め込み文字は無視されます。
埋め込みスペースを使用できるのは、以下のルールに従える場合のみです。
- 現在のSDFファイルでグループ分離文字としてスペースが定義されていれば、文字列の基数分離文字の左の桁グループを分離するのにスペースを使用できます。このとき、GroupingRuleまたはCurrencyGroupingRuleで定義されるグループ化ルールに従います。
- 現在のSDFファイルで基数分離文字としてスペースが定義されていれば、文字列に基数文字としてスペースを1つ含めることができます。
- FORMAT句にNなどの通貨書式設定文字が含まれていて、SDFファイルの中のそれに適合したCurrencyNameなどの通貨文字列にスペースが含まれる場合は、文字列にその通貨文字列の一部としてスペースを含めることができます。
- 符号(+または-)は、数値の一部として保存されます。仮数記号は、文字列の最初の数字の前、または文字列の最後の数字の後に置くことができます。指数記号は、仮数符号の後に置くことができます。
- FORMATと一致する場合、通貨記号は無視されます。FORMATと一致する場合、通貨文字列は無視されます。文字列ではただ1つの通貨だけが許可されます。
- 数字は、基数または英字Eの構文解析に応じて、整数、小数、または指数部分として保存されます。
- FORMATで指定された基数に一致しない限り、分離文字は無視されます。
分離文字がFORMATで指定された基数に一致する場合、位置はその数の小数部の始めとして保存されます。Vは、暗黙小数の小数部分をマークします。
通貨および分離文字が許容されているのは、文字から数値への変換に関する非ANSI標準のTeradata拡張機能です。
- (数字間の)埋め込みダッシュは、その数が符号付きであったり、基数、通貨、または指数が付帯していたりしない限り、許可されます。
- 英字のEは、その数の指数部の始めとして保存されます。Eの後ろには、1個の空白が許可されています。
- 指数部の符号(+ または -)は保存されます。
- 指数部の数字は保存されます。符号が、指数部の数字の後ろにあってはなりません。