sql >> Databáze >  >> RDS >> Oracle

Getting Error – ORA-01858:Na místě, kde se očekávala číslice, byl nalezen nečíselný znak

Chyba, kterou dostáváte, je buď proto, že provádíte TO_DATE ve sloupci, který již obsahuje datum, a používáte masku formátu, která se liší od vašeho nls_date_format parametr[1] nebo protože sloupec event_occurrence obsahuje data, která nejsou číslem.

Musíte a) opravit svůj dotaz tak, aby ve sloupci data nepoužíval TO_DATE, a b) opravit svá data, pokud má být event_occurrence pouze čísla.

A opravte datový typ tohoto sloupce, abyste se ujistili, že můžete ukládat pouze čísla.



[1] Co dělá Oracle, když to uděláte:TO_DATE(date_column, non_default_format_mask) je:TO_DATE(TO_CHAR(date_column, nls_date_format), non_default_format_mask)

Obecně výchozí nls_date_format parametr je nastaven na dd-MON-yy , takže ve vašem dotazu se pravděpodobně stane, že se váš sloupec data převede na řetězec ve formátu dd-MON-yy a vy jej pak převedete zpět na datum ve formátu MMDD. Řetězec není v tomto formátu, takže se zobrazí chyba.



  1. Osvědčené postupy:.NET:Jak vrátit PK proti databázi Oracle?

  2. Závažná chyba:operátor [] není pro řetězce podporován

  3. Název tabulky nebo sloupce nemůže začínat číslicí?

  4. Jak mohu potlačit výstup záhlaví sloupců pro jeden příkaz SQL?