DECFLOAT_FORMAT スカラー関数

DECFLOAT_FORMAT 関数は、指定されたフォーマットを使用して、入力ストリングを DECFLOAT(34) に変換処理した値を戻します。

構文図を読むビジュアルシンタックスダイアグラムをスキップするDECFLOAT_FORMAT(文字列式 ,書式文字列 )

スキーマは SYSIBM です。

文字列式
CHAR および VARCHAR データ・タイプの値を戻す式。 指定した引数が GRAPHIC または VARGRAPHIC のデータ・タイプであると、まず VARCHAR に変換されてから、関数が評価されます。 先行ブランクと末尾のブランクは、ストリングから除去されます。 format-string が指定されていない場合、結果のサブストリングは、SQL の整数定数、10 進定数、浮動小数点定数、または 10 進浮動小数点定数を形成するための規則に準拠し、42 バイト以下でなければなりません。 そうでない場合、結果のサブストリングに、format-string で指定された形式に対応する数値のコンポーネントが含まれている必要があります。
書式文字列
組み込み文字ストリング・データ・タイプの値を戻す式。 指定された引数がグラフィック・ストリングの場合 (DBCLOB を除く)、最初にこの引数が文字ストリングに変換されてから、関数が評価されます。 実際の長さは、254 バイト以下でなければなりません。

この値は、DECFLOAT 値に変換する際に string-expression を解釈するための形式を指定したテンプレートです。 format-string には、以下にリストするフォーマット・エレメントの有効な組み合わせが含まれていなければなりません。有効な組み合わせは、次の規則に従います。

  • 少なくとも 1 つの「0」または「9」フォーマット・エレメントを指定する必要があります。
  • 符号のフォーマット・エレメント (「S」、「MI」、「PR」) を指定できるのは 1 回だけです。
  • 小数点のフォーマット・エレメントを指定できるのは 1 回だけです。
  • 英字のフォーマット・エレメントは、大文字で指定する必要があります。
  • 接頭部のフォーマット・エレメントを指定できるのは、フォーマット・ストリングの先頭のみです。また、接頭部のフォーマット・エレメントの前に接頭部以外のフォーマット・エレメントがあってはなりません。 複数の接頭部のフォーマット・エレメントを指定するときには、どのような順番で指定してもかまいません。
  • 接尾部のフォーマット・エレメントを指定できるのは、フォーマット・ストリングの末尾のみです。また、接尾部のフォーマット・エレメントの後に接尾部以外のフォーマット・エレメントがあってはなりません。
  • コンマのフォーマット・エレメントは、接頭部のフォーマット・エレメント以外の最初のフォーマット・エレメントにすることができます。 コンマのフォーマット・エレメントは、いくつでも使用することができます。
  • ブランクをフォーマット・エレメントの間に指定することはできません。 前後のブランクを指定することはできますが、それらは無視されます。
表 1. DECFLOAT_FORMAT 関数のフォーマット・エレメント
フォーマット・エレメント 説明
0 または 9 0 または 9 のいずれも数字を表します。
S
接頭部
string-expression が負の数値を表す場合、指定の場所に先行の負符号 (−) が必要です。 string-expression が正の数値を表す場合、指定の場所に先行の正符号 (−) または先行ブランクを含めることができます。
$
接頭部
指定の場所に、先行のドル記号 (「$」) が必要です。
MI
接尾部
string-expression が負の数値を表す場合、指定の場所に末尾の負符号 (-) が必要です。 string-expression が正の数値を表す場合は、指定の場所に末尾ブランクを含めることができます。
PR
接尾部
ストリング式 が負の数値を表す場合は、先行するより小文字 (<) 末尾の「より大」文字 (>) が予期されています。 string-expression が正の数値を表す場合は、先行ブランクと末尾ブランクを含めることができます。
グループ分離文字を表します。 グループ分離文字は、その左側に接頭部文字ではない文字がある場合、指定の場所に必要です。
. ピリオドは、指定の場所に期待される小数点を表します。

書式制御ストリング を指定しない場合、 ストリング式 は、SQL 整数、10 進数、浮動小数点、または 10 進浮動小数点定数を形成するための規則に準拠し、42 バイト以下の長さでなければなりません。

結果は、DECFLOAT(34) です。

結果は NULL 値になることがあります。いずれかの引数が NULL 値である場合、結果は NULL 値になります。

代替構文:
TO_NUMBER は DECFLOAT_FORMAT のシノニムです。

表 2. DECFLOAT_FORMAT の例
結果
DECFLOAT_FORMAT( '123.45' ) 123.45
DECFLOAT_FORMAT( '−123456.78' ) -123456.78
DECFLOAT_FORMAT( '+123456.78' ) 123456.78
DECFLOAT_FORMAT( '1.23E4' ) 12300
DECFLOAT_FORMAT( '123.4', '9999.99' ) 123.40
DECFLOAT_FORMAT( '001,234', '000,000' ) 1234
DECFLOAT_FORMAT( '1234 ', '9999MI' ) 1234
DECFLOAT_FORMAT( '1234−', '9999MI' ) -1234
DECFLOAT_FORMAT( '+1234', 'S9999' ) 1234
DECFLOAT_FORMAT( '−1234', 'S9999' ) -1234
DECFLOAT_FORMAT( ' 1234 ', '9999PR' ) 1234
DECFLOAT_FORMAT( '<1234>', '9999PR' ) -1234
DECFLOAT_FORMAT( '$123,456.78', '$999,999.99' ) 123456.78