Това не е добра практика. Числените данни трябва да се съхраняват в NUMBER колони. Причината е проста:ако не наложим силен тип данни, може да се окажем с нечислови данни в нашата колона varchar2. Ако това се случи, филтър като този
where to_number(field1) = 23
ще се провали с ORA-01722: invalid number
.
Не мога със сигурност да кажа, че това се случва във вашия сценарий, защото не разбирам защо очевидно незначителни промени във филтрите на ID са променили успеха на заявката. Би било поучително да видите плановете за изпълнение за различните версии на заявките. Но мисля, че е по-вероятно да е проблем с вашите данни, отколкото грешка в SGA.