2011-01-25 14 views
9

मेरे पास एक तालिका में एक कॉलम खाली है। अजीब चीज यह है कि यह शून्य या खाली स्ट्रिंग प्रतीत नहीं होता है। तो, अगर मैं ऐसा करते हैं:ओरेकल 10 जी: कॉलम खाली है, लेकिन शून्य या खाली स्ट्रिंग नहीं है

SELECT * 
    FROM TABLE 
WHERE column IS NULL 

... या:

SELECT * 
    FROM TABLE 
WHERE column = '' 

मैं कुछ भी नहीं मिलता है। विचार?

+2

कॉलम प्रकार क्या है? –

+0

'CREATE TABLE' कथन पोस्ट करें - यदि कॉलम CHAR है, तो CHAR घोषणा में नामित संख्या के लिए स्पेस वर्ण आवंटित किए जाएंगे। –

+1

क्या तालिका से चुनें * ट्राइम (कॉलम) = '' 'कुछ भी लौटाएं? –

उत्तर

15

जारी करना इस क्वेरी:

SELECT column, DUMP(column, 1016) 
FROM table 

यह सटीक सामग्री प्रदर्शित करेंगे।

संबंधित: ओरेकल खाली तारों की अनुमति नहीं देता है; वे चुपचाप NULL में परिवर्तित कर रहे हैं।

14

शायद कॉलम में केवल रिक्त स्थान हैं?

आप

 
select * 
from table 
where trim(column) is null 
+0

लगभग 100 के प्रतिनिधि। सच में अच्छा! : डी बधाई और मदद करने के लिए धन्यवाद। भगवान आशीर्वाद ... –

3

Oracle की एक मूल रूप से स्थायी झुंझलाहट कि रिक्त स्ट्रिंग अशक्त के रूप में इलाज कर रहे हैं मिल गया की कोशिश किया। हालांकि, क्या आप वाकई एक खाली स्ट्रिंग है? यह एक अन्यथा अदृश्य चरित्र हो सकता है, जैसे स्पेस या टैब/लाइनब्रेक/लाइनफीड/आदि ... जब आप select length(column) from table करते हैं तो स्ट्रिंग लम्बाई क्या दिखाती है?

1

इस प्रयास करें:

SELECT *  
    FROM TABLE 
WHERE TRIM(column) IS NULL 
1

अपने कॉलम नहीं VARCHAR2 लेकिन CHAR(N) तो एक खाली स्ट्रिंग की प्रविष्टि गद्देदार है है। what Tom Kyte tells about this

+0

यहां क्या हुआ ... ऐसा लगता है कि कॉलम में 0 बाइट वर्ण था। Rawtohex फ़ंक्शन का उपयोग करके मैंने इसे पाया। ट्रिम करने के लिए मुझे यही करना था: कॉलम से ट्रिम (सीआर (0)) – Josh

संबंधित मुद्दे