sql >> Database >  >> RDS >> Oracle

Fout krijgen - ORA-01858:er is een niet-numeriek teken gevonden waar een numeriek werd verwacht

De fout die je krijgt is ofwel omdat je TO_DATE . aan het doen bent op een kolom die al een datum is, en je gebruikt een formaatmasker dat afwijkt van je nls_date_format parameter[1] of omdat de kolom event_occurrence gegevens bevat die geen getal zijn.

U moet a) uw zoekopdracht corrigeren zodat deze geen TO_DATE gebruikt in de datumkolom, en b) uw gegevens corrigeren, als event_occurrence alleen maar getallen zou moeten zijn.

En corrigeer het datatype van die kolom om ervoor te zorgen dat u alleen nummers kunt opslaan.



[1] Wat Oracle doet als u dit doet:TO_DATE(date_column, non_default_format_mask) is:TO_DATE(TO_CHAR(date_column, nls_date_format), non_default_format_mask)

Over het algemeen is de standaard nls_date_format parameter is ingesteld op dd-MON-yy , dus in uw zoekopdracht, wat waarschijnlijk gebeurt, is dat uw datumkolom wordt geconverteerd naar een tekenreeks in de indeling dd-MON-yy, en u zet deze vervolgens terug naar een datum met de indeling MMDD. De string is niet in dit formaat, dus je krijgt een foutmelding.



  1. Introductie van afspelen:nieuwe tijddiagnose voor Spotlight Cloud

  2. Documenten opslaan en analyseren op Windows-bestandssysteem met SQL Server Semantic Search - Deel 2

  3. ODP.NET implementeren en configureren om te werken zonder installatie met Entity Framework

  4. Een Oracle-audit overleven