ऐतिहासिक कारण। वे 10g से पहले अलग हुआ करते थे:
<ब्लॉकक्वॉट>8i और 9i को, PLS_INTEGER BINARY_INTEGER से काफ़ी तेज़ था।
<ब्लॉकक्वॉट>जब पूर्णांकों को घोषित करने और उनमें हेरफेर करने की बात आती है, तो Oracle बहुत सारे विकल्प प्रदान करता है, जिनमें शामिल हैं:
INTEGER - STANDARD पैकेज में NUMBER के उपप्रकार के रूप में परिभाषित, यह डेटाटाइप पूरी तरह से प्लेटफ़ॉर्म-स्वतंत्र फैशन में लागू किया गया है, जिसका अर्थ है कि आप NUMBER या INTEGER चर के साथ जो कुछ भी करते हैं वह उसी तरह काम करना चाहिए जिस पर डेटाबेस स्थापित है हार्डवेयर की परवाह किए बिना ।
BINARY_INTEGER - STANDARD पैकेज में INTEGER के उपप्रकार के रूप में परिभाषित किया गया है। BINARY_INTEGER के रूप में घोषित चर को -2+1 .. 2-1, उर्फ -2,147,483,647 से 2,147,483,647 के बीच मान असाइन किया जा सकता है। Oracle9i डेटाबेस रिलीज़ 2 से पहले, BINARY_INTEGER सहयोगी सरणियों (उर्फ, इंडेक्स-बाय टेबल) के लिए अनुमत एकमात्र इंडेक्सिंग डेटाटाइप था, जैसा कि:
TYPE my_array_t IS TABLE OF VARCHAR2(100)
INDEX BY BINARY_INTEGER
<ब्लॉकक्वॉट> PLS_INTEGER - मानक पैकेज में BINARY_INTEGER के उपप्रकार के रूप में परिभाषित किया गया है। PLS_INTEGER के रूप में घोषित चर को -2+1 .. 2-1, उर्फ -2,147,483,647 से 2,147,483,647 के बीच मान असाइन किया जा सकता है। PLS_INTEGER संचालन मशीन अंकगणित का उपयोग करते हैं, इसलिए वे आम तौर पर NUMBER और INTEGER संचालन से तेज़ होते हैं। साथ ही, Oracle डेटाबेस 10g से पहले, वे BINARY_INTEGER से तेज़ हैं। Oracle डेटाबेस 10g में, हालांकि, BINARY_INTEGER और PLS_INTEGER अब समान हैं और एक दूसरे के स्थान पर उपयोग किए जा सकते हैं।