Ini bukan praktik yang baik. Data numerik harus disimpan dalam NUMBER kolom. Alasannya sederhana:jika kita tidak menerapkan tipe data yang kuat, kita mungkin menemukan diri kita dengan data non-numerik di kolom varchar2 kita. Jika itu terjadi maka filter seperti ini
where to_number(field1) = 23
akan gagal dengan ORA-01722: invalid number
.
Saya tidak dapat dengan pasti mengatakan ini adalah apa yang terjadi dalam skenario Anda, karena saya tidak mengerti mengapa perubahan yang tampaknya tidak signifikan pada filter ID telah mengubah keberhasilan kueri. Akan sangat bermanfaat untuk melihat rencana eksekusi untuk berbagai versi kueri. Tapi saya pikir ini lebih mungkin menjadi masalah dengan data Anda daripada bug di SGA.