नहीं, Oracle का नल का उपचार विशिष्ट है, बाकी सभी से अलग है, और ANSI मानकों के साथ असंगत है। हालांकि Oracle के बचाव में, यह शायद स्थिर हो गया था और इस उपचार के लिए प्रतिबद्ध था, इससे पहले कि ANSI मानक संगत हो!
यह सब इस तथ्य से शुरू होता है कि ओरेकल स्ट्रिंग डेटा के बाद एक वर्ण गणना के साथ तारों को स्टोर करता है। एक NULL को बिना किसी निम्न स्ट्रिंग डेटा के शून्य की वर्ण गणना द्वारा दर्शाया जाता है - जो बिल्कुल खाली स्ट्रिंग ('') के समान है। Oracle के पास उन्हें अलग करने का कोई तरीका नहीं है।
यह कुछ विचित्र व्यवहार की ओर ले जाता है, जैसे कि यह संयोजन मामला। ओरेकल में एक स्ट्रिंग की लंबाई वापस करने के लिए एक फ़ंक्शन LENGTH भी है, लेकिन इसे एक विपरीत तरीके से परिभाषित किया गया है, ताकि LENGTH ('') NULL को शून्य न लौटाए। तो:
LENGTH('abc') + LENGTH('') IS NULL
LENGTH('abc' || '') = 3
जो मुझे बुनियादी गणितीय सिद्धांतों का उल्लंघन लगता है।
बेशक, Oracle डेवलपर्स इसके इतने अभ्यस्त हो जाते हैं कि हम में से बहुत से लोग इसके बारे में कुछ भी गलत या अजीब नहीं देख सकते हैं - कुछ वास्तव में तर्क देंगे कि बाकी दुनिया गलत है और एक खाली स्ट्रिंग और एक NULL हैं वही बात!