計算結果が最大 precision にトランケートされる場合の、小数点以下の最小桁数を指定します。
{ ulcreate | ulinit | ulload } -o scale=value;...
整数 (0 ~ 127)
6
小数点の位置は数値の精度 (precision) と位取り (scale) で決まります。精度は小数点の左右の合計桁数です。位取りは、計算結果が最大精度にトランケートされるときの小数点以下の最小桁数です。
適切な小数点の位置を決定するには、次の点を考慮します。
実行する計算のタイプ 掛け算、割り算、足し算、引き算、集合関数はすべて結果が最大精度を超える可能性があります。
たとえば、DECIMAL(8,2) と DECIMAL(9,2) を掛けると、結果には DECIMAL(17,4) が必要です。precision が 15 の場合、15 桁のみが結果に保持されます。scale が 4 の場合、結果は DECIMAL(15,4) になります。scale が 2 の場合、結果は DECIMAL(15.2) になります。どちらの場合も、オーバフロー・エラーの可能性があります。
scale と precision の値の関係 scale は、小数点以下の桁数を設定し、負の数や precision より大きい値にはできません。
既存のデータベースの位取りは変更できません。変更する必要がある場合は、新しいデータベースを作成してください。
Sybase Central では、データベースを作成するウィザードで位取りを設定できます。[新しいデータベース作成パラメータ] ページで [位取り] オプションを選択します。
クライアント・アプリケーションから、データベース・マネージャ・クラスに対するデータベース作成メソッドの作成パラメータの 1 つとしてこのプロパティを設定します。
DECIMAL(8,2) と DECIMAL(9,2) を掛けると、結果には DECIMAL(17,4) が必要です。precision が 15 の場合、15 桁のみが結果に保持されます。scale が 4 の場合、結果は DECIMAL(15,4) になります。scale が 2 の場合、結果は DECIMAL(15.2) になります。どちらの場合も、オーバフローが発生する可能性があります。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |