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

Oracle:to_date . में NULL मान से बचना

अगर start_date शून्य है, कोई अपवाद नहीं फेंका गया है।

select to_date( null, 'mm/dd/yyyy' ) 
  from dual

एक पूरी तरह से मान्य SQL कथन है जो NULL देता है।

आपको जो त्रुटि मिल रही है, उसका तात्पर्य यह है कि start_date . में कम से कम कुछ पंक्तियाँ कॉलम वास्तव में उस प्रारूप में तार नहीं हैं जिसकी आप अपेक्षा करते हैं या वह मानचित्र अमान्य तिथियों (यानी स्ट्रिंग '13/35/2007') के लिए है। आप एक फ़ंक्शन लिख सकते हैं जो यह देखने के लिए परीक्षण करता है कि क्या स्ट्रिंग को किसी दिनांक में परिवर्तित किया जा सकता है और या तो परिवर्तित दिनांक या NULL लौटा सकता है। फिर आप to_date . के बजाय उसका उपयोग कर सकते हैं ।

CREATE OR REPLACE FUNCTION my_to_date( p_str    IN VARCHAR2,
                                       p_format IN VARCHAR2 )
  RETURN DATE
IS
BEGIN
  RETURN to_date( p_str, p_format );
EXCEPTION
  WHEN OTHERS
  THEN
    RETURN NULL;
END;

और फिर my_to_date . का उपयोग करें to_date . के बजाय . इससे आपको जो त्रुटि मिल रही है उसे खत्म करना चाहिए। हालांकि, अमान्य स्ट्रिंग्स से छुटकारा पाने के लिए आप शायद डेटा को साफ़ करना चाहेंगे।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PLSQL में वास्तविक डेटाटाइप

  2. Oracle से निर्दिष्ट पंक्तियों को हटाने का इष्टतम तरीका

  3. WHERE क्लॉज में COALESCE का सही उपयोग करना

  4. सुलह के लिए SQL कथन

  5. Oracle क्वेरी वर्ष के अनुसार QTY को रोलअप करने के लिए- केवल पिछले 3 वर्ष