Lý do lịch sử. Họ đã từng khác trước 10g:
Trên 8i và 9i, PLS_INTEGER nhanh hơn đáng kể so với BINARY_INTEGER.
Khi nói đến việc khai báo và thao tác với số nguyên, Oracle cung cấp rất nhiều tùy chọn, bao gồm:
INTEGER - được định nghĩa trong gói STANDARD dưới dạng một kiểu con của NUMBER, kiểu dữ liệu này được triển khai theo kiểu hoàn toàn độc lập với nền tảng, có nghĩa là bất cứ điều gì bạn làm với biến NUMBER hoặc INTEGER sẽ hoạt động giống nhau bất kể phần cứng mà cơ sở dữ liệu được cài đặt. .
BINARY_INTEGER - được định nghĩa trong gói STANDARD như một kiểu con của INTEGER. Các biến được khai báo là BINARY_INTEGER có thể được gán giá trị từ -2 + 1 .. 2-1, còn gọi là -2,147,483,647 đến 2,147,483,647. Trước Bản phát hành cơ sở dữ liệu Oracle9i 2, BINARY_INTEGER là kiểu dữ liệu lập chỉ mục duy nhất được phép cho các mảng kết hợp (hay còn gọi là bảng lập chỉ mục), như trong:
TYPE my_array_t IS TABLE OF VARCHAR2(100)
INDEX BY BINARY_INTEGER
PLS_INTEGER - được định nghĩa trong gói STANDARD như một kiểu con của BINARY_INTEGER. Các biến được khai báo là PLS_INTEGER có thể được gán giá trị trong khoảng từ -2 + 1 .. 2-1, còn gọi là -2,147,483,647 đến 2,147,483,647. Các phép toán PLS_INTEGER sử dụng số học máy, vì vậy chúng thường nhanh hơn các phép toán NUMBER và INTEGER. Ngoài ra, trước Oracle Database 10g, chúng nhanh hơn BINARY_INTEGER. Tuy nhiên, trong Cơ sở dữ liệu Oracle 10g, BINARY_INTEGER và PLS_INTEGER hiện giống hệt nhau và có thể được sử dụng thay thế cho nhau.