Note that the input is a text field of length 8 bytes. If the input field has ? in the first byte, the TPUMP works. If the ? is in
any other position other than the first byte, TPUMP writes the error log with the message "Invalid date supplied for
That's what I would expect. Since the field is character, comparing it to '?' is equivalent to comparing it to '? '.
You probably can't say "nullif position('?' in sales_trans_dt) > 0", so you will have to clean up the input before running TPump.