NUMBER データ型は、ゼロ、浮動小数点数、正の固定小数点数、および負の固定小数点数を格納できます。この記事では主に NUMBER データ型の構文、パラメータ、および使用方法について説明します。
構文
NUMBER [(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 |