Исторически причини. Преди 10g бяха различни:
На 8i и 9i PLS_INTEGER беше забележимо по-бърз от BINARY_INTEGER.
Когато става въпрос за деклариране и манипулиране на цели числа, Oracle предлага много опции, включително:
INTEGER - дефиниран в пакета СТАНДАРТ като подтип на NUMBER, този тип данни се реализира по напълно независим от платформата начин, което означава, че всичко, което правите с променливи NUMBER или INTEGER, трябва да работи по същия начин, независимо от хардуера, на който е инсталирана базата данни .
BINARY_INTEGER - дефиниран в пакета STANDARD като подтип на INTEGER. На променливите, декларирани като BINARY_INTEGER, могат да бъдат присвоени стойности между -2+1 .. 2-1, известен още като -2,147,483,647 до 2,147,483,647. Преди Oracle9i Database Release 2, BINARY_INTEGER беше единственият индексиращ тип данни, разрешен за асоциативни масиви (известни още като таблици по индекс), както в:
TYPE my_array_t IS TABLE OF VARCHAR2(100)
INDEX BY BINARY_INTEGER
PLS_INTEGER - дефиниран в пакета STANDARD като подтип на BINARY_INTEGER. На променливите, декларирани като PLS_INTEGER, могат да бъдат присвоени стойности между -2+1 .. 2-1, известен още като -2,147,483,647 до 2,147,483,647. Операциите PLS_INTEGER използват машинна аритметика, така че обикновено са по-бързи от операциите NUMBER и INTEGER. Освен това, преди Oracle Database 10g, те са по-бързи от BINARY_INTEGER. В Oracle Database 10g обаче BINARY_INTEGER и PLS_INTEGER вече са идентични и могат да се използват взаимозаменяемо.