मैं कुछ ओरेकल काम करने में एक सहयोगी के लिए भरने की कोशिश कर रहा हूं, और एक झगड़ा में भाग गया। नल के लिए एक स्तंभ संशोधित करने के लिए एक पटकथा लिखने के लिए प्रयास कर में, मैं सुंदर ORA-01451 त्रुटि का सामना किया:ऑरैकल में संशोधित कॉलम - कैसे जांचें कि कॉलम शून्य करने के लिए सेट करने से पहले शून्य है?
ORA-01451: column to be modified to NULL cannot be modified to NULL
इसका कारण यह है स्तंभ पहले से ही शून्य है हो रहा है। हमारे पास कई डेटाबेस हैं जिन्हें उतारने की आवश्यकता है, इसलिए मेरी ग़लत धारणा में मैंने यह सुनिश्चित करने के लिए बोर्ड में काम करना चाहिए कि यह सुनिश्चित करने के लिए कि सभी लोग अद्यतित हैं, भले ही वे इस कॉलम को मैन्युअल रूप से सेट करने के लिए सेट करें या नहीं। हालांकि, यह स्पष्ट रूप से कुछ लोगों के लिए एक त्रुटि का कारण बनता है जिनके पास कॉलम पहले से ही शून्य है।
त्रुटि से बचने के लिए कोई कॉलम पहले से ही शून्य होने पर कैसे जांचता है? कुछ है कि इस विचार को पूरा होगा:
IF(MyTable.MyColumn IS NOT NULLABLE)
ALTER TABLE MyTable MODIFY(MyColumn NULL);
धन्यवाद टोनी! मुझे यह काम मिल रहा है (निष्पादन पर उद्धरण को बंद करने के लिए एक मामूली फिक्स के साथ) और अब हम व्यवसाय में हैं! –
मैं सुझाव दूंगा कि प्रत्येक बार जब आप इसे चलाते हैं तो डाटा डिक्शनरी से पूछताछ करना अपर्याप्त होगा, अगर ऐसा होता है तो अपवाद को संभालने की तुलना में। –
जेफरी, आप शायद सही हैं, लेकिन यह स्कीमा चेंज स्क्रिप्ट के लिए था, इसलिए यह प्रति डेटाबेस एक बार-बार स्थिति है। एक बार परिवर्तन हो जाने के बाद, यह फिर से नहीं चलाया जाएगा। –