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

ORACLE - ORA-01843:मान्य माह नहीं है

लाइन को देखते हुए:

OD.DATE2 BETWEEN '08/03/2015' AND '08/03/2016'

फिर '08/03/2015' और '08/03/2016' स्ट्रिंग अक्षर हैं और तिथियां नहीं हैं।

Oracle आपके NLS_DATE_FORMAT का उपयोग करके एक स्ट्रिंग अक्षर से एक तिथि में एक अंतर्निहित रूपांतरण का प्रयास करेगा सत्र पैरामीटर प्रारूप मास्क के रूप में और यदि यह काम नहीं करता है तो यह एक त्रुटि देगा।

सरल उपाय यह है कि स्ट्रिंग लिटरल्स का उपयोग न करें बल्कि इसके बजाय डेट लिटरल का उपयोग करें:

SELECT 'M'||to_char( DATE2, 'MM' ) PERIODE,
        count(*) DATA,
        DCCPT
FROM    BDD
WHERE   BDD   = 'phone'
AND     SENS  = 'Ent'
AND     DCCPT IN ( 'PIOLUC' )
AND     DATE2 BETWEEN DATE '2015-03-08' AND DATE '2016-03-08'
GROUP BY
        'M'||to_char( DATE2, 'MM' ),
        DCCPT

लेकिन आप प्रारूप मुखौटा भी निर्दिष्ट कर सकते हैं:

OD.DATE2 BETWEEN TO_DATE( '08/03/2015', 'DD/MM/YYYY' ) AND TO_DATE( '08/03/2016', 'DD/MM/YYYY' )


  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. जावा से Oracle फ़ंक्शन को कॉल करें

  3. JDBC ResultSet को टेबल एलियास के साथ कॉलम मिलते हैं

  4. Oracle में दिनांक स्वरूपण करते समय दिन और महीने के नामों का कैपिटलाइज़ेशन

  5. Oracle Concatenate स्ट्रिंग और संख्या उदाहरण