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

Dziwny problem z funkcją TO_NUMBER w Oracle

To nie jest dobra praktyka. Dane liczbowe powinny być przechowywane w NUMBER kolumnach. Powód jest prosty:jeśli nie wymusimy silnego typu danych, możemy znaleźć dane nieliczbowe w naszej kolumnie varchar2. Gdyby tak się stało, filtr taki jak ten

where to_number(field1) = 23 

nie powiedzie się z ORA-01722: invalid number .

Nie mogę na pewno powiedzieć, co dzieje się w twoim scenariuszu, ponieważ nie rozumiem, dlaczego pozornie nieznaczne zmiany w filtrach identyfikatora wpłynęły na powodzenie zapytania. Pouczające byłoby zapoznanie się z planami wykonania dla różnych wersji zapytań. Ale myślę, że jest to bardziej prawdopodobne, że będzie to problem z twoimi danymi niż błąd w SGA.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Komunikat o błędzie programu sqldeveloper:Karta sieciowa nie może nawiązać błędu połączenia

  2. Oracle -- Z KLAUZULĄ => POŁĄCZENIE? (Błąd składni, )

  3. Instalowanie rozszerzenia oci8 w Linuksie dla php?

  4. Jak dodać przesunięcie w zapytaniu wybierającym w Oracle 11g?

  5. brak ocijdbc9 w java.library.path