най-доброто обяснение, което намерих, е следното:
Каква е разликата между INTEGER и NUMBER? Кога трябва да използваме NUMBER и кога INTEGER? Просто исках да актуализирам коментарите си тук...
NUMBER винаги се съхранява както сме въвели. Скалата е от -84 до 127. Но INTEGER закръгля до цяло число. Скалата за INTEGER е 0. INTEGER е еквивалентно на NUMBER(38,0). Това означава, че INTEGER е ограничено число. Десетичният знак ще бъде закръглен. Но NUMBER не е ограничен.
- ЦЯЛО ЧИСЛО (12.2) => 12
- ЦЯЛО ЧИСЛО (12,5) => 13
- ЦЯЛО ЧИСЛО (12,9) => 13
- ЦЯЛО ЧИСЛО (12.4) => 12
- ЧИСЛО(12.2) => 12.2
- ЧИСЛО(12,5) => 12,5
- ЧИСЛО(12,9) => 12,9
- ЧИСЛО(12,4) => 12,4
INTEGER винаги е по-бавно от NUMBER. Тъй като integer е число с добавено ограничение. Необходими са допълнителни цикли на процесора, за да се наложи ограничението. Никога не съм наблюдавал разлика, но може да има разлика, когато заредим няколко милиона записа в колоната INTEGER. Ако трябва да гарантираме, че входът е цели числа, тогава INTEGER е най-добрият вариант. В противен случай можем да се придържаме към NUMBER тип данни.
Ето връзката