jueves, 28 de septiembre de 2017

Cómo pasar campo hexadecimal a string en Oracle

Cómo pasar campo hexadecimal a string en Oracle

Resulta que el día de ayer me pidieron buscar unas transacciones perdidas en una tabla de errores.

Acepte sin saber que el campo de la tabla que contiene la información del error está codificado en formato hexadecimal.

El campo está guardado como Raw bytes de acuerdo a la documentación de la tabla.

Además de esto el campo es tipo CLOB lo cual como saben puede tener cadenas muy grandes.

Y pues ahi me tienen buscando cómo pasar de hexadecimal a string en Oracle con algún query.

Al final di con una función de Oracle para pasar el campo que estaba como Raw bytes

SELECT UTL_RAW.CAST_TO_VARCHAR2('686f6c6121') 
FROM dual;

La misma cadena en mayúsculas producirá lo mismo

SELECT UTL_RAW.CAST_TO_VARCHAR2('686F6C6121') 
FROM dual;

Resultado:

hola!

Espero les sirva.