1

私はオラクルに非常に慣れていませんが、クラスでそれについて学んでおり、最近numberデータ型に出くわしました。スケールと精度 (s,p) に関するドキュメントを読みましたが、型の適切な使用法についてはまだ確信が持てません。

パーセント値を小数として保存したいとしましょう。小数は 0 から 1 までの任意の場所で、小数点以下に最大 3 つの数字を含めることができます。

格納される可能性のある小数には、次のものがあります。

.66
.553
1.00

もし私がコラムを作ったとしても、NUMBER(4,3)数字が2つしかない場合でもそれは機能しますか? 下記参照

.22
.10
.35
etc...

要するに、数値型では、正確なサイズが満たされている必要がありますか? 例えば。NUMBER(4,3) は、挿入されるデータが 4 つの数字であり、そのうちの 3 つが小数点以下にあることを絶対に要求しますか?

助けてくれてありがとう!

4

1 に答える 1

2

列のデータ型によって、格納できる値の範囲が制限されます。しかし、特定の長さや精度を強制することは何もしません。

1 つの文字または NULL をVARCHAR2(100)列に格納できるのと同様に、3 桁未満の精度と 4 桁未満の位取りの数値を格納できます。たとえば、値 0 と 6.1 はどちらもNUMBER(4,3)列に対して完全に有効です。精度の桁数が多すぎる値を挿入すると、値は列定義で指定された精度に暗黙的に丸められます。

SQL> create table foo (
  2    col1 number(4,3)
  3  );

Table created.

SQL> insert into foo values( 9.999 );

1 row created.

SQL> insert into foo values (0);

1 row created.

SQL> insert into foo values( 6.1 );

1 row created.

SQL> insert into foo values( 1.2345 );

1 row created.

SQL> select * from foo;

      COL1
----------
     9.999
         0
       6.1
     1.235
于 2012-04-09T01:27:22.587 に答える