Dette er ikke god praksis. Numeriske data skal opbevares i NUMBER kolonner. Årsagen er enkel:Hvis vi ikke håndhæver en stærk datatype, kan vi finde os selv med ikke-numeriske data i vores varchar2-kolonne. Hvis det skulle ske, så et filter som dette
where to_number(field1) = 23
ville mislykkes med ORA-01722: invalid number
.
Jeg kan ikke med sikkerhed sige, at det er det, der sker i dit scenarie, fordi jeg ikke forstår, hvorfor tilsyneladende ubetydelige ændringer i ID-filtrene har ændret forespørgslens succes. Det ville være lærerigt at se udførelsesplanerne for de forskellige versioner af forespørgslerne. Men jeg tror, det er mere sandsynligt, at det er et problem med dine data end en fejl i SGA.