Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.
NUMERIC データ型は、総桁数の precision と小数点以下の桁数の scale を持つ 10 進数を格納するために使用します。
NUMERIC [ ( precision [ , scale ] ) ]
precision 式の桁数を指定する整数式。1 ~ 127 の範囲。デフォルト設定値は 30 です。
scale 小数点以下の桁数を指定する整数式。0 ~ 127 の範囲。scale 値は precision 値以下にする必要があります。デフォルト設定値は 6 です。
NUMERIC データ型は真数値データ型です。精度は、算術演算の後、最小の有効桁数まで保存されます。
10 進数を格納するために必要なバイト数は、次のように計算できます。
2 + INT( (BEFORE+1)/2 ) + INT( (AFTER+1)/2 )
INT 関数は引数の整数部分であり、BEFORE と AFTER は小数点の前後の有効桁数です。記憶領域の計算の基準は、カラムの中で使われている最大精度と小数点以下の桁数ではなく、格納されている値を使います。
使用する精度が 20 以下で小数点以下の桁数が 0 の場合、代わりに整数データ型のいずれか (BIGINT、INTEGER、SMALLINT、または TINYINT) を使用できることがあります。整数値では、有効桁数が同じくらいの NUMERIC 値や DECIMAL 値よりも少ない記憶領域が使用されます。整数値の操作 (フェッチ、挿入など) や算術演算子は、通常、NUMERIC 値や DECIMAL 値の操作よりも速く実行されます。
セマンティック上、NUMERIC は DECIMAL と同じです。
NUMERIC データ型のカラムまたは変数を作成するとき、これらのカラムまたは変数の精度または位取りがデータベースの精度および位取りの設定を超過する場合は 、値はデータベースの設定に合わせてトランケートされます。このため、NUMERIC として定義されているカラムまたは変数の値がトランケートされる場合は、精度と位取りがデータベースのオプション設定を超過していないかどうかを確認します。
SQL/2008 scale オプションが 0 に設定されている場合、SQL/2008 と互換性があります。