Wenn du mit SQLDA umgehst musst du die Feldtypen für den Fetch schon genau spezifizieren.
Wenn du keine Umsetzung möchtest, musst du als Zielvariable einen Binärfeldtyp mit ausreichend großem Puffer wählen.
Für Fixed-Binary gilt der Feldtyp 912/913, für varying Binary 908/909 (Siehe SQL-Reference).
Beim Describe Table/Statement erhältst du auch die CCSID in der SQLDA, so dass du explizit entscheiden kannst.

Wandelst du in CHAR um, muss ja eine Umsetzung erfolgen, in diesem Fall ist die CCSID in der SQLDA anzugeben.
Bei fehlender Angabe wird eben die JOB-CCSID verwendet, was bei *HEX zum Fehler führt.

CCSID values in SQLDATA or SQLNAME
In the OPEN, FETCH, CALL, and EXECUTE statements, the SQLNAME field of
the SQLVAR element can be used to specify a CCSID for string host variables. If
the SQLNAME field is used to specify a CCSID, the SQLNAME length must be set
to 8. In addition, the first 4 bytes of SQLNAME must be set as described in the
table below. If no CCSID is specified, the job CCSID is used.
In the DESCRIBE, DESCRIBE TABLE, and PREPARE statements, the SQLDATA
field of the SQLVAR element contains the CCSID of the column of the result table
if that column is a string column. The CCSID is located in bytes 3 and 4 as
described in Table 123.
Table 123. CCSID values for SQLDATA or SQLNAME
Data Type
Encoding
Scheme Bytes 1 & 2 Bytes 3 & 4
Character SBCS data X'0000' ccsid
Character Mixed data X'0000' ccsid
Character Bit data X'0000' 65535
Graphic Not Applicable X'0000' ccsid
Any other data type Not Applicable Not Applicable Not Applicable