SQL functions to convert DEC to HEX value
Do you need to convert decimal value to hexadecimal representation? Then you should try this:
--
WITH DEMO AS (SELECT DECIMAL( 12345678.905 , 15, 3 ) AS DECVALUE -- 8 bytes internally
FROM SYSIBM.SYSDUMMYE )
--
SELECT DECVALUE AS DECVALUE_ORIGINAL,
PACK(CCSID 1208,DECVALUE) AS DECVALUE_PACKED,
LENGTH(PACK(CCSID 1208,DECVALUE)) AS LEN_DECVALUE_PACKED,
HEX( PACK(CCSID 1208,DECVALUE) ) AS X_DECVALUE_PACKED,
HEX(SUBSTR(PACK(CCSID 1208,DECVALUE) ,8)) AS X_DECVALUE_PACKED_STRIPPED
FROM DEMO
;
Sample data displayed in a GUI (e.g. DbVisualizer):

The result is of type VARBINARY. You cannot mix  CHAR / VARCHAR and VARBINARY data but you can concatenate other converted strings. Example:
HEX(SUBSTR(PACK(CCSID 1208,DECVALUE) ,8,6 ) !! VARBINARY(X'050C',2))
In former versions of DB2 the attribute CHAR FOR BIT DATA has been used. The VARBINARY attribute is the appropriate replacement.







Comments
Comments are closed.