ストリームデータ処理基盤 uCosminexus Stream Data Platform - Application Framework アプリケーション開発ガイド

[目次][索引][前へ][次へ]

3.3.2 DECIMAL型およびNUMERIC型についての注意事項

DECIMAL型およびNUMERIC型のデータで,送信データが指定したけた数を超えた場合,エラーになります。

また,次の処理を実行した場合に,結果のけた数がquery.decimalMaxPrecisionパラメーターで指定したけた数を超えた場合,指定したけた数に丸められて表現されます(これらの処理を実行しない場合,値は丸められません)。

値をどのように丸めて表現するかは,query.decimalRoundingModeパラメーターで指定します。パラメーターの詳細については,マニュアル「uCosminexus Stream Data Platform - Application Framework システム構築・運用ガイド」を参照してください。

値の丸め方の例を次の表に示します。なお,この例はquery.decimalMaxPrecisionパラメーターに「1」(けた数は1に丸める)と設定している場合です。

表3-6 値の丸め方の例(query.decimalMaxPrecision=1の場合)

演算結果
(けた数2)
query.decimalRoundingModeパラメーターの指定値
DOWN HALF_UP
5.5 5 6
2.5 2 3
1.6 1 2
1.1 1 1
1.0 1 1
-1.0 -1 -1
-1.1 -1 -1
-1.6 -1 -2
-2.5 -2 -3
-5.5 -5 -6

なお,DECIMAL型(NUMERIC型)の数定数(10進定数)の場合,けた数のチェックは実行されません。値がデータの範囲外の場合,query.decimalMaxPrecisionパラメーターおよびquery.decimalRoundingModeパラメーターの指定値に関係なく,CQLに記述した値として表現されます。

DECIMAL型(NUMERIC型)の送信データ,演算結果,数定数について,けた数の指定方法と指定したけた数を超えた場合の動作を次の表に示します。

表3-7 DECIMAL型(NUMERIC型)のけた数の指定方法とけた数を超えた場合の動作

種類 けた数の指定方法 指定したけた数を超えた場合の動作
送信データ スキーマ指定文字列の型名 データ送信時にけた数を超えていた場合,エラーになります。
演算結果
  • 四則演算
  • 集合関数SUM/AVG
  • キャスト
query.decimalMaxPrecisionパラメーター query.decimalMaxPrecisionパラメーターで指定したけた数になるよう,query.decimalRoundingModeパラメーターで指定した方法で丸められます。
上記以外 演算結果がそのまま表示されます(値は丸められません)。
数定数(10進定数) 指定なし CQLに記述した値で表現されます。