sql >> Database teknologi >  >> RDS >> Oracle

Får fejl - ORA-01858:et ikke-numerisk tegn blev fundet, hvor et numerisk var forventet

Den fejl, du får, skyldes enten, at du laver TO_DATE på en kolonne, der allerede er en dato, og du bruger en formatmaske, der er forskellig fra dit nls_date_format parameter[1] eller fordi hændelses_forekomst-kolonnen indeholder data, der ikke er et tal.

Du skal a) rette din forespørgsel, så den ikke bruger TO_DATE i datokolonnen, og b) rette dine data, hvis event_occurrence kun skal være tal.

Og ret datatypen for den kolonne for at sikre, at du kun kan gemme tal.



[1] Hvad Oracle gør, når du gør:TO_DATE(date_column, non_default_format_mask) er:TO_DATE(TO_CHAR(date_column, nls_date_format), non_default_format_mask)

Generelt er standard nls_date_format parameter er indstillet til dd-MON-yy , så det, der sandsynligvis sker i din forespørgsel, er, at din datokolonne konverteres til en streng i formatet dd-MÅN-åå, og du vender den tilbage til en dato med formatet MMDD. Strengen er ikke i dette format, så du får en fejl.



  1. Hvordan make_timestamptz() virker i PostgreSQL

  2. ORA-01618

  3. Valg af anden række i en tabel ved hjælp af rownum

  4. MySQL vs MongoDB 1000 læser