viernes, 2 de marzo de 2012

Como buscar una cadena de caracteres en un blob de Oracle

El requisito para realizar el procedimiento es que el campo blob donde queremos buscar contenga caracteres. Si este es nuestro caso y queremos localizar una determinada cadena de caracteres dentro de este campo, se sigue el procedimiento que paso a describir.

Oracle dispone de un paquete de utilidades para trabajar con objetos de tipo RAW denominado UTL_RAW, y este paquete contiene una función que permiter convertir un objeto tipo BLOB en otro tipo VARCAHR2:  UTL_RAW.CAST_TO_VARCHAR2([<objeto Blob>])

Utilizamos esta función para buscar una cadena de caracteres en un Blob mediante la siguiente SELECT:

select [<lista de campos a mostrar>] from [<tabla>] where utl_raw.cast_to_varchar2([<objeto Blob>]) like '%[<cadena a buscar>]%'