注意
DECIMAL 型をパーティションキーとして使用し、ODP を介して OceanBase データベースに接続する場合は、正確なルーティングを保証するために、ODP のバージョンが V4.2.3 以上であることを確認してください。
固定小数点数型は可変長の厳密数値型であり、値の範囲と精度は Precision と Scale、および符号が無符号かどうかによって決まります。
DECIMAL は NUMERIC と同等です。構文は以下のとおりです:
DECIMAL[(M[,D])] [UNSIGNED] [ZEROFILL]
M は格納可能な総桁数(Precision)、D は小数点以下の桁数(Scale)です。小数点と負の符号 "-" は M に含まれません。D が 0 の場合、値に小数点または小数部はありません。整数部の最大有効桁数は M から D を引いた値、すなわち Precision から Scale を引いた値に等しくなります。DECIMAL 列に対するすべての基本的な計算(+、-、*、/)は 65 桁の精度を使用します。
DECIMAL の M の最大値は 65、D の最大値は 30 です。D を省略した場合、デフォルトは 0 です。M を省略した場合、デフォルトは 10 です。
数値列に ZEROFILL を指定すると、OceanBase データベースは自動的にその列に UNSIGNED 属性を追加します。UNSIGNED を指定すると、負の値を許可しません。
例えば DECIMAL(5,2) の場合、整数部と小数部の最大有効桁数はそれぞれ 3 と 2 なので、値の範囲は [-999.99, 999.99] です。UNSIGNED も同時に指定すると、値の範囲は [0, 999.99] になります。
以下の型も DECIMAL のシノニムです。その中で、FIXED は他のデータベースシステムとの互換性を持たせるために使用できます。
DEC[(M[,D])] [UNSIGNED] [ZEROFILL], NUMERIC[(M[,D])] [UNSIGNED] [ZEROFILL], FIXED[(M[,D])] [UNSIGNED] [ZEROFILL]