Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Fehler beim Abrufen – ORA-01858:Ein nicht numerisches Zeichen wurde gefunden, wo eine Ziffer erwartet wurde

Der Fehler, den Sie erhalten, liegt entweder daran, dass Sie TO_DATE ausführen in einer Spalte, die bereits ein Datum ist, und Sie verwenden eine Formatmaske, die sich von Ihrem nls_date_format unterscheidet parameter[1] oder weil die Spalte event_occurrence Daten enthält, die keine Zahl sind.

Sie müssen a) Ihre Abfrage so korrigieren, dass TO_DATE nicht in der Datumsspalte verwendet wird, und b) Ihre Daten korrigieren, wenn event_occurrence nur aus Zahlen bestehen soll.

Und korrigieren Sie den Datentyp dieser Spalte, um sicherzustellen, dass Sie nur Zahlen speichern können.



[1] Was Oracle tut, wenn Sie es tun:TO_DATE(date_column, non_default_format_mask) ist:TO_DATE(TO_CHAR(date_column, nls_date_format), non_default_format_mask)

Im Allgemeinen das standardmäßige nls_date_format Parameter ist auf dd-MON-yy gesetzt , also wird in Ihrer Abfrage wahrscheinlich Ihre Datumsspalte in eine Zeichenfolge im Format TT-MON-JJ konvertiert, und Sie wandeln sie dann wieder in ein Datum um, das das Format MMTT verwendet. Die Zeichenfolge hat nicht dieses Format, daher erhalten Sie eine Fehlermeldung.