This is a question better addressed to a SYBASE (IQ server) oriented group. <insert> If the insights from </insert> runrig <insert> and Herveus </insert> has offered a possible approachdon't nail the explanation, then you may be dealing but even that deals with a SYBASE issue.
And, in the big picture, creating your temp table with a single (varchar(25)) field for your output looks a lot like byte-paring or premature optimization. You've said as much, in effect, in describing your workaround -- a temp table with two fields. So, while your hope of understanding your error is highly commendable, I suspect <insert> that if the replies above don't explain adequately, </insert> the root issue is within SYBASE, not Perl.
EDITS above: after seeing Herveus' note which tends to undermine my notion that the problem may be with the server s/ware.