Estoy tratando de ver desde una consola SQL lo que hay dentro de un BLOB de Oracle.
Sé que contiene un cuerpo de texto algo grande y solo quiero ver el texto, pero la siguiente consulta solo indica que hay un BLOB en ese campo:
select BLOB_FIELD from TABLE_WITH_BLOB where ID = '<row id>';
el resultado que obtengo no es exactamente el que esperaba:
BLOB_FIELD ----------------------- oracle.sql.BLOB@1c4ada9
Entonces, ¿qué tipo de encantamientos mágicos puedo hacer para convertir el BLOB en su representación textual?
PD: Solo estoy tratando de ver el contenido del BLOB desde una consola SQL (Eclipse Data Tools), no usarlo en el código.
Puede utilizar el SQL siguiente para leer los campos BLOB de la tabla.
fuente
SQL Developer también proporciona esta funcionalidad:
Haga doble clic en la celda de la cuadrícula de resultados y haga clic en editar:
Luego, en la parte superior derecha de la ventana emergente, "Ver como texto" (incluso puede ver imágenes ..)
¡Y eso es!
fuente
Si desea buscar dentro del texto, en lugar de verlo, esto funciona:
fuente
La respuesta de Barn funcionó para mí con modificaciones porque mi columna no está comprimida. La solución rápida y sucia:
fuente
Luché con esto por un tiempo e implementé la solución PL / SQL, pero luego me di cuenta de que en Toad puedes simplemente hacer doble clic en la celda de la cuadrícula de resultados y aparece un editor con contenido en texto. (estoy en Toad v11)
fuente
En caso de que su texto esté comprimido dentro del blob usando el algoritmo DEFLATE y sea bastante grande, puede usar esta función para leerlo
Luego ejecuta seleccionar para obtener texto
Espero que esto ayude a alguien.
fuente
Utilice este SQL para obtener los primeros 2000 caracteres del BLOB.
Nota: Esto se debe a que Oracle no podrá manejar la conversión de BLOB con una longitud superior a 2000.
fuente
Puedes probar esto:
Sin embargo, estaría limitado a 4000 bytes
fuente
Trabajó para mi,
fuente
TO_CHAR
Función de uso .Conversos
NCHAR
,NVARCHAR2
,CLOB
, oNCLOB
los datos al conjunto de caracteres base de datos. El valor devuelto es siempreVARCHAR2
.fuente