[ 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.89NUMBER7456123.89
7,456,123.89NUMBER(*,1)7456123.9
7,456,123.89NUMBER(9)7456124
7,456,123.89NUMBER(9,2)7456123.89
7,456,123.89NUMBER(9,1)7456123.9
7,456,123.89NUMBER(6)(精度を超えているため、受け入れられない)
7,456,123.89NUMBER(7,-2)7456100

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

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

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

スポンサーリンク

Pocket

Leave a Reply

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

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>