najlepsze wyjaśnienie, jakie znalazłem, to:
Jaka jest różnica między INTEGER a NUMBER? Kiedy powinniśmy używać NUMBER, a kiedy INTEGER? Chciałem tylko zaktualizować moje komentarze tutaj...
NUMBER zawsze przechowuje tak, jak wpisaliśmy. Skala wynosi od -84 do 127. Ale INTEGER zaokrągla do liczby całkowitej. Skala dla INTEGER to 0. INTEGER jest odpowiednikiem NUMBER(38,0). Oznacza to, że INTEGER jest liczbą ograniczoną. Miejsce po przecinku zostanie zaokrąglone. Ale liczba NUMBER nie jest ograniczona.
- INTEGER(12.2) => 12
- INTEGER(12,5) => 13
- CAŁKOWITA(12,9) => 13
- INTEGER(12.4) => 12
- LICZBA(12.2) => 12.2
- LICZBA(12,5) => 12,5
- LICZBA(12,9) => 12,9
- LICZBA(12,4) => 12,4
INTEGER jest zawsze wolniejszy niż NUMBER. Ponieważ liczba całkowita jest liczbą z dodatkowym ograniczeniem. Wymuszenie ograniczenia wymaga dodatkowych cykli procesora. Nigdy nie zauważyłem żadnej różnicy, ale może być różnica, gdy ładujemy kilka milionów rekordów do kolumny INTEGER. Jeśli musimy upewnić się, że dane wejściowe są liczbami całkowitymi, najlepszym rozwiązaniem jest INTEGER. W przeciwnym razie możemy pozostać przy typie danych NUMBER.
Oto link