in reply to Re: Re: DBI: when 1 != '1'
in thread DBI: when 1 != '1'

Yes, it look's like the string parameter gets converted to a number. Told you it had changed. ;-)

Which means that

SQL> select count(*) from rdf_test where '1.0' = v1; COUNT(*) ---------- 1 SQL> select count(*) from rdf_test where 'a' = v1; select count(*) from rdf_test where 'a' = v1 * ERROR at line 1: ORA-01722: invalid number SQL> select count(*) from rdf_test where v1 = 'a'; select count(*) from rdf_test where v1 = 'a' * ERROR at line 1: ORA-01722: invalid number

Obviously the fix is to convert the number into a string (since the exception can't be generated then). Thus,

1* select count(*) from rdf_test where 'a' = TO_CHAR(v1) SQL> / COUNT(*) ---------- 0
Great. It's working fine now. But...
SQL> select count(*) from rdf_test where '1.0' = TO_CHAR(v1); COUNT(*) ---------- 0
which leaves it still being a headache.

--
Tommy
Too stupid to live.
Too stubborn to die.