that is because you are joining a varchar2 to a number and Oracle is applying an implicit to_number in your varchar2 column