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.