Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

Oracle 9i एक खाली स्ट्रिंग को NULL के रूप में क्यों मानता है?

मेरा मानना ​​है कि इसका उत्तर यह है कि Oracle बहुत, बहुत पुराना है।

पुराने दिनों में वापस SQL ​​मानक होने से पहले, Oracle ने डिज़ाइन निर्णय लिया था कि VARCHAR में रिक्त स्ट्रिंग्स /VARCHAR2 कॉलम थे NULL और यह कि NULL का केवल एक ही अर्थ था (ऐसे संबंधपरक सिद्धांतकार हैं जो डेटा के बीच अंतर करते हैं जिसके लिए कभी संकेत नहीं दिया गया है, डेटा जहां उत्तर मौजूद है लेकिन उपयोगकर्ता द्वारा ज्ञात नहीं है, डेटा जहां कोई जवाब नहीं है, आदि। सभी जो NULL . का कुछ अर्थ बनाते हैं )।

जब तक SQL मानक आ गया और सहमत हो गया कि NULL और खाली स्ट्रिंग अलग-अलग इकाइयाँ थीं, पहले से ही Oracle उपयोगकर्ता थे जिनके पास कोड था जो मानता था कि दोनों समान थे। तो ओरेकल मूल रूप से मौजूदा कोड को तोड़ने, एसक्यूएल मानक का उल्लंघन करने, या किसी प्रकार के प्रारंभिक पैरामीटर को पेश करने के विकल्पों के साथ छोड़ दिया गया था जो संभावित रूप से बड़ी संख्या में प्रश्नों की कार्यक्षमता को बदल देगा। SQL मानक (IMHO) का उल्लंघन इन तीन विकल्पों में सबसे कम विघटनकारी था।

Oracle ने इस संभावना को खुला छोड़ दिया है कि VARCHAR SQL मानक का पालन करने के लिए भविष्य के रिलीज़ में डेटा प्रकार बदल जाएगा (यही कारण है कि हर कोई VARCHAR2 का उपयोग करता है Oracle में चूंकि उस डेटा प्रकार का व्यवहार आगे भी वैसा ही रहने की गारंटी है)।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. सी # द्वारा ऑरैकल प्रक्रिया में पूर्णांक सरणी पास करें

  2. पीएल एसक्यूएल में बड़े टेक्स्ट/सीएसवी फाइल को कई फाइलों में विभाजित करें

  3. तालिका से रिकॉर्ड्स को हटाने के लिए PL/SQL प्रोग्राम

  4. Oracle में JDK संस्करण की जाँच कैसे करें?

  5. Oracle में N'String' बनाम U'String' अक्षर के बीच अंतर