私が見つけた最良の説明はこれです:
INTEGER と NUMBER の違いは何ですか?いつ NUMBER を使用し、いつ INTEGER を使用する必要がありますか?ここでコメントを更新したかっただけです...
NUMBER は入力したとおりに保存されます。スケールは -84 ~ 127 です。ただし、INTEGER は整数に丸められます。 INTEGER の位取りは 0 です。INTEGER は NUMBER(38,0) と同等です。つまり、INTEGER は制約付きの数値です。小数点以下は四捨五入されます。しかし、NUMBER は制約されていません。
- INTEGER(12.2) => 12
- INTEGER(12.5) => 13
- INTEGER(12.9) => 13
- INTEGER(12.4) => 12
- NUMBER(12.2) => 12.2
- NUMBER(12.5) => 12.5
- NUMBER(12.9) => 12.9
- NUMBER(12.4) => 12.4
INTEGER は常に NUMBER より遅くなります。整数は制約が追加された数値であるため。制約を適用するには、追加の CPU サイクルが必要です。私は違いを見たことがありませんが、INTEGER 列に数百万のレコードをロードすると違いがあるかもしれません。入力が整数であることを確認する必要がある場合は、INTEGER が最適なオプションです。それ以外の場合は、NUMBER データ型に固執できます。
リンク はこちら