[ Oracle ] number型の精度(全体の桁数)とスケール(小数点以下の桁数)を指定する

Pocket

ここでは、Oracle データベースのテーブルに数値型(number型)のカラムを作成するサンプルを掲載しています。なお、以下のリンク先にその詳細な記載がありますので、合わせて確認ください。

スポンサーリンク

NUMBERデータ型の精度

number型は非常に大きな(小さな)値を扱うことができ、デフォルトで最大38桁の精度で数値を扱うことができます。

  • 1 x 10-130~9.99…9 x 10125の範囲の正の数。最大有効桁数は38です。
  • -1 x 10-130~9.99…99 x 10125の範囲の負の数。最大有効桁数は38です。
  • 0(ゼロ)
  • 正と負の無限大(Oracle Databaseバージョン5からのインポート時にのみ生成されます)。

精度(全体の桁数)とスケール(小数点以下の桁数)を指定する

number型は、全体の桁数と小数点以下の桁数を指定することもできます。下表は、入力データ(数値)がどのようにデータベースに格納されるかのサンプルを示しています。詳細は、前述のリンク先で確認ください。

スケール変更係数が数値データの格納に与える影響

入力データ number型の定義 格納されるデータ
7,456,123.89 NUMBER 7456123.89
7,456,123.89 NUMBER(*,1) 7456123.9
7,456,123.89 NUMBER(9) 7456124
7,456,123.89 NUMBER(9,2) 7456123.89
7,456,123.89 NUMBER(9,1) 7456123.9
7,456,123.89 NUMBER(6) (精度を超えているため、受け入れられない)
7,456,123.89 NUMBER(7,-2) 7456100

スケールにマイナス値を指定する

あまり使わないかもしれませんが、小数点以下の桁数に負数を指定する(表では(7,-2))と、100の位で丸められようようになります。

個人的には、どのような用途で使用されるのか気になります。教えて頂けると嬉しいです。どちらかと言うとデータベースよりはアプリケーション側でまるめる気がしてなりません。

スポンサーリンク


Pocket

Leave a Comment

Your email address will not be published. Required fields are marked *