DECFLOAT_FORMAT スカラー関数
DECFLOAT_FORMAT 関数は、指定されたフォーマットを使用して、入力ストリングを DECFLOAT(34) に変換処理した値を戻します。
スキーマは 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 のシノニムです。
例
| 例 | 結果 |
|---|---|
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 |
