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.