sql >> Base de Datos >  >> RDS >> Oracle

Obteniendo un problema extraño con la función TO_NUMBER en Oracle

Esta no es una buena práctica. Los datos numéricos deben mantenerse en NÚMERO de columnas. La razón es simple:si no aplicamos un tipo de datos fuerte, es posible que nos encontremos con datos no numéricos en nuestra columna varchar2. Si eso sucediera, entonces un filtro como este

where to_number(field1) = 23 

fallaría con ORA-01722: invalid number .

No puedo decir con certeza que esto es lo que está sucediendo en su escenario, porque no entiendo por qué cambios aparentemente insignificantes en los filtros de ID han cambiado el éxito de la consulta. Sería instructivo ver los planes de ejecución para las diferentes versiones de las consultas. Pero creo que es más probable que sea un problema con sus datos que un error en el SGA.