Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Obtendo problema estranho com a função TO_NUMBER no Oracle


Esta não é uma boa prática. Os dados numéricos devem ser mantidos em colunas NUMBER. A razão é simples:se não aplicarmos um tipo de dados forte, podemos nos encontrar com dados não numéricos em nossa coluna varchar2. Se isso acontecer, então um filtro como este
where to_number(field1) = 23 

falharia com ORA-01722: invalid number .

Não posso dizer com certeza que é isso que está acontecendo no seu cenário, porque não entendo porque mudanças aparentemente insignificantes nos filtros de ID alteraram o sucesso da consulta. Seria instrutivo ver os planos de execução para as diferentes versões das consultas. Mas acho que é mais provável que seja um problema com seus dados do que um bug no SGA.