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 |