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

त्रुटि प्राप्त करना - ORA-01858:एक गैर-संख्यात्मक वर्ण पाया गया जहाँ एक संख्यात्मक अपेक्षित था

आपको जो त्रुटि मिल रही है वह या तो इसलिए है क्योंकि आप TO_DATE कर रहे हैं उस कॉलम पर जो पहले से ही एक तिथि है, और आप एक प्रारूप मास्क का उपयोग कर रहे हैं जो आपके nls_date_format से भिन्न है पैरामीटर [1] या क्योंकि event_occurrence कॉलम में डेटा है जो एक संख्या नहीं है।

आपको a) अपनी क्वेरी को सही करने की आवश्यकता है ताकि यह दिनांक कॉलम पर TO_DATE का उपयोग न करे, और b) अपने डेटा को सही करें, यदि event_occurrence को केवल संख्या माना जाता है।

और यह सुनिश्चित करने के लिए कि आप केवल संख्याओं को संग्रहित कर सकते हैं, उस कॉलम के डेटाटाइप को ठीक करें।



[1] जब आप ऐसा करते हैं तो Oracle क्या करता है:TO_DATE(date_column, non_default_format_mask) है:TO_DATE(TO_CHAR(date_column, nls_date_format), non_default_format_mask)

आम तौर पर, डिफ़ॉल्ट nls_date_format पैरामीटर dd-MON-yy . पर सेट है , इसलिए आपकी क्वेरी में, क्या होने की संभावना है कि आपका दिनांक कॉलम dd-MON-yy प्रारूप में एक स्ट्रिंग में परिवर्तित हो गया है, और फिर आप इसे MMDD प्रारूप का उपयोग करके एक तारीख में वापस कर रहे हैं। स्ट्रिंग इस प्रारूप में नहीं है, इसलिए आपको एक त्रुटि मिलती है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle अनुक्रम 1 के बजाय 2 से शुरू होता है

  2. एक टेबल पर CONNECT BY LEVEL अतिरिक्त पंक्तियाँ क्यों लौटाता है?

  3. पीएलएसक्यूएल :नया और :पुराना

  4. ORA-00904:अमान्य पहचानकर्ता

  5. ऑरैकल में कॉलम संशोधित करें - कैसे जांचें कि कोई कॉलम शून्य करने योग्य होने से पहले शून्य है या नहीं?