Oracle
 sql >> Base de données >  >> RDS >> Oracle

Erreur d'obtention - ORA-01858 :un caractère non numérique a été trouvé là où un chiffre était attendu

L'erreur que vous obtenez est soit parce que vous faites TO_DATE sur une colonne qui est déjà une date, et vous utilisez un masque de format différent de votre nls_date_format paramètre[1] ou parce que la colonne event_occurrence contient des données qui ne sont pas un nombre.

Vous devez a) corriger votre requête afin qu'elle n'utilise pas TO_DATE dans la colonne de date, et b) corriger vos données, si event_occurrence est censé être uniquement des nombres.

Et corrigez le type de données de cette colonne pour vous assurer que vous ne pouvez stocker que des nombres.



[1] Ce que fait Oracle lorsque vous le faites :TO_DATE(date_column, non_default_format_mask) est :TO_DATE(TO_CHAR(date_column, nls_date_format), non_default_format_mask)

Généralement, le nls_date_format par défaut le paramètre est défini sur dd-MON-yy , donc dans votre requête, ce qui est susceptible de se produire, c'est que votre colonne de date est convertie en une chaîne au format jj-MON-aa, et vous la retournez ensuite à une date en utilisant le format MMDD. La chaîne n'est pas dans ce format, vous obtenez donc une erreur.