Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Uzyskiwanie błędu — ORA-01858:znaleziono znak nienumeryczny w miejscu, w którym oczekiwano wartości liczbowej

Błąd, który otrzymujesz, jest spowodowany tym, że robisz TO_DATE w kolumnie, która jest już datą i używasz maski formatu innej niż nls_date_format parametr[1] lub ponieważ kolumna event_occurrence zawiera dane, które nie są liczbą.

Musisz a) poprawić zapytanie, aby nie używało TO_DATE w kolumnie daty, oraz b) poprawić dane, jeśli event_occurrence ma być tylko liczbami.

I popraw typ danych tej kolumny, aby upewnić się, że możesz przechowywać tylko liczby.



[1] Co robi Oracle, gdy robisz:TO_DATE(date_column, non_default_format_mask) to:TO_DATE(TO_CHAR(date_column, nls_date_format), non_default_format_mask)

Zazwyczaj domyślny nls_date_format parametr jest ustawiony na dd-MON-yy , więc w zapytaniu prawdopodobnie nastąpi konwersja kolumny daty na ciąg w formacie dd-MON-rr, a następnie przywrócenie jej z powrotem do daty w formacie MMDD. Ciąg nie jest w tym formacie, więc pojawia się błąd.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Siatki bezpieczeństwa

  2. SQLRecoverableException:Wyjątek we/wy:Resetowanie połączenia

  3. Jak używać funkcji NVL() w Oracle

  4. podając poprawną nazwę użytkownika i hasło, pobierz ORA-01017:nieprawidłowa nazwa użytkownika/hasło; Logowanie odrzucone

  5. Jak mogę ograniczyć liczbę wierszy zwracanych przez zapytanie Oracle po złożeniu zamówienia?