Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Seltsames Problem mit TO_NUMBER-Funktion in Oracle

Dies ist keine gute Praxis. Numerische Daten sollten in NUMBER Spalten gehalten werden. Der Grund ist einfach:Wenn wir keinen starken Datentyp erzwingen, finden wir uns möglicherweise mit nicht numerischen Daten in unserer varchar2-Spalte wieder. Wenn das passieren sollte, dann ein Filter wie dieser

where to_number(field1) = 23 

würde mit ORA-01722: invalid number fehlschlagen .

Ich kann nicht mit Sicherheit sagen, dass dies in Ihrem Szenario passiert, da ich nicht verstehe, warum scheinbar unbedeutende Änderungen in den ID-Filtern den Erfolg der Abfrage verändert haben. Es wäre aufschlussreich, die Ausführungspläne für die verschiedenen Versionen der Abfragen zu sehen. Aber ich denke, es ist eher ein Problem mit Ihren Daten als ein Fehler in der SGA.