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

SQL त्रुटि का सामना करना:ORA-01843:मान्य माह नहीं है

'04/04/2012 13:35 PM' तारीख नहीं है - यह एक स्ट्रिंग है।

Oracle एक अंतर्निहित TO_DATE( string_value, format_mask ) करेगा गैर-तारीख वाले अक्षरों पर उन्हें DATE . में सम्मिलित करते समय NLS_DATE_FORMAT . के मान का उपयोग करते हुए स्तंभ सत्र पैरामीटर प्रारूप मास्क के रूप में (नोट:यह एक सत्र पैरामीटर है और क्लाइंट से संबंधित है; यह वैश्विक सेटिंग नहीं है ) यदि गैर-दिनांक शाब्दिक इस प्रारूप से मेल खाता है तो यह काम करेगा (और यदि ऐसा नहीं होता है तो यह नहीं होगा) - हालांकि, यदि NLS_DATE_FORMAT कभी भी बदल दिया जाता है तो यह तुरंत टूट जाएगा (कोई भी डिबग करने के लिए एक बड़ा दर्द हो सकता है क्योंकि जो कोड काम कर रहा था वह नहीं होगा लेकिन किसी ने भी कोड नहीं बदला होगा)।

आप अपने वर्तमान NLS_DATE_FORMAT . का पता लगा सकते हैं क्वेरी के साथ:

SELECT VALUE
FROM   NLS_SESSION_PARAMETERS
WHERE  PARAMETER = 'NLS_DATE_FORMAT';

स्पष्ट रूप से TO_DATE() का उपयोग करना बेहतर है सही प्रारूप मास्क के साथ या एएनएसआई/आईएसओ दिनांक शाब्दिक (यानी DATE '2012-04-04' का उपयोग करने के लिए) या TIMESTAMP '2012-04-04 13:35' )।

आप यह कर सकते हैं:

INSERT INTO STORE ( id, opening_time )
  VALUES( 1, TO_DATE( '04/04/2012 13:35', 'DD/MM/YYYY HH24:MI' );

(आपको AM/PM . की आवश्यकता नहीं है चूंकि घंटा घटक पहले से ही 24 घंटे की घड़ी पर है)

या

INSERT INTO STORE ( id, opening_time )
  VALUES( 1, TIMESTAMP '2012-04-04 13:35:00' );

(एएनएसआई/आईएसओ टाइमस्टैम्प शाब्दिक का उपयोग करके जो ओरेकल परोक्ष रूप से एक तिथि में परिवर्तित हो जाएगा)



  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. खाली तालिका के MAX () को NULL के बजाय 0 के रूप में कैसे व्यवहार करें?

  3. ODBC का उपयोग करके Oracle DB से कनेक्ट करें

  4. ओरा-01427 सिंगल-पंक्ति सबक्वायरी को कैसे ठीक करें चयन में एक से अधिक पंक्ति लौटाता है?

  5. पायथन 3.3 - Oracle डेटाबेस से कनेक्ट करें