NUMBER データ型は、ゼロ、浮動小数点数、正の固定小数点数、および負の固定小数点数を格納できます。本記事では主に、NUMBER データ型の構文、パラメータ、使用方法について説明します。
構文
NUMBER [(p[, s])]
パラメータ
注意
pとsパラメータを指定したNUMBER型をパーティションキーとして使用し、ODP経由でOceanBaseデータベースに接続する場合は、正確なルーティングを保証するために、ODPのバージョンがV4.2.3以上であることを確認してください。NUMBERデータ型では、パラメータpまたはsの変更はサポートされていません。- 小数桁数の正符号法は、小数点から右側の有効数字のうち、最も左側の有効数字を含む桁数です。精度と小数桁数はいずれも10進数で表されます。
- 小数桁数の負符号法は、小数点から左側の有効数字の数ですが、最も左側の有効数字は含まれません。負の比率では、実際のデータは小数点の左側に指定された桁数だけ四捨五入されるため、最も左側の有効数字は小数点の左側になります。
パラメータ |
値の範囲 |
説明 |
|---|---|---|
| p | [1,38] | 表示精度を表す。有効な10進数の最大値で、最も左側の非ゼロの数字が最も重要な桁、最も右側の既知の数字が最も重要でない桁となる。 |
| s | [-84,127] | 小数点以下の桁数を表す。小数点から最も重要でない桁までの数えた桁数である。スケール範囲は [-84,127]。
説明
|
使用方法
NUMBERは可変長の厳密な数値型であり、4~40バイトのストレージ容量を占用します。そのうち4バイトはNUMBERのメタデータ情報に、36バイトはNUMBERの具体的な数値に使用されます。その絶対値の範囲は1.0 × 10-130 から 1.0 × 10126 です(1.0 × 10126 は含まれません)。指定した算術式の絶対値が1.0 × 10126 以上の場合、OceanBaseデータベースはエラーを返します。
NUMBER データ型は、高いデータ精度、汎用性、移植性を備えていますが、演算効率は浮動小数点型に比べて相対的に低くなります。 NUMBER [(p[s])] では、p は一般的に精度を、s は一般的にスケールを示します。NUMBER データ型は以下の形式で整数を指定します:
NUMBER(p)は、精度がpでスケールが0の固定小数点数を表し、NUMBER(p,0)と同義です。NUMBERは浮動小数点数を表し、精度と小数桁数の指示子が欠けています。
NUMBER データ型は、異なる精度と小数桁数を使用してデータを格納します。OceanBaseデータベースに保存されるデータが精度を超えないようにするためには、固定小数点数列に小数桁数と精度を指定し、入力に対して追加の整合性チェックを行う必要があります。ただし、これによって固定小数点数列の長さが強制的に固定されるわけではありません。実際に保存されるデータが精度を超えた場合、OceanBaseデータベースはエラーを返します。保存されるデータが小数桁数を超えた場合、OceanBaseデータベースは四捨五入を行います。例は下表を参照してください。
実際のデータ |
指定された型 |
保存される型 |
|---|---|---|
| 135.79 | NUMBER |
135.79 |
| 135.79 | NUMBER(3) |
136 |
| 135.79 | NUMBER(3,2) |
精度を超える |
| 135.79 | NUMBER(4,2) |
精度を超える |
| 135.79 | NUMBER(5,2) |
135.79 |
| 135.79 | NUMBER(6,1) |
135.8 |
| 135.79 | NUMBER(6,-2) |
100 |
| .01234 | NUMBER(4,5) |
.01234 |
| .00012 | NUMBER(4,5) |
.00012 |
| .000127 | NUMBER(4,5) |
.00013 |
| .0000012 | NUMBER(2,7) |
.0000012 |
| .00000123 | NUMBER(2,7) |
.0000012 |
| 1.2e-4 | NUMBER(2,5) |
.00012 |
| 1.2e-5 | NUMBER(2,5) |
.00001 |