Oracle
 sql >> Base de données >  >> RDS >> Oracle

Obtenir un problème étrange avec la fonction TO_NUMBER dans Oracle

Ce n'est pas une bonne pratique. Les données numériques doivent être conservées dans NUMBER colonnes. La raison est simple :si nous n'appliquons pas un type de données fort, nous pourrions nous retrouver avec des données non numériques dans notre colonne varchar2. Si cela devait arriver, alors un filtre comme celui-ci

where to_number(field1) = 23 

échouerait avec ORA-01722: invalid number .

Je ne peux pas dire avec certitude que c'est ce qui se passe dans votre scénario, car je ne comprends pas pourquoi des changements apparemment insignifiants dans les filtres d'ID ont changé le succès de la requête. Il serait instructif de voir les plans d'exécution des différentes versions des requêtes. Mais je pense que c'est plus probablement un problème avec vos données qu'un bogue dans le SGA.