Judging from what my copy of Oracle does, the output of select 'yes' from dual where 'hello ' = 'hello';
..Are you sure that Oracle is not treating the strings as varchar2's, within that statement? Granted I ran into this problem with Oracle 8.0.5, but there was a column in a table that was defined as char(18) and I was using DBI to do lookups against that table. Some of the lookup values did not have trailing spaces and the matched failed. DBD::Oracle trims trailling spaces by default, which can be overriden. I eventually changed the column to be a varchar2 and the trailing spaces were not an issue anymore.