Leer clob en oracle (ORA-00932)
Bienvenidos de nuevo a  vertutoriales.com.
En esta ocasión traemos como resolver un error de tipo de datos de oracle  a la hora de leer un campo CLOB. Los campos CLOB los usamos para datos de más de 4000 caracteres y equivale al MEMO en  mysql, sin embargo no son tan fáciles de leer.
Dependiendo de la lectura y operaciones que hagamos con el campo asà como la longitud del contenido oracle nos puede devolver un error del tipo:
ORA-00932: inconsistent datatypes: expected * got CLOB.
Para el manejo correcto de campos clob y no obtener ningún tipo de error debemos usar la librerÃa de oracle  DBMS_LOB:
DBMS_LOB.substr(CAMPO, DBMS_LOB.getlength(CAMPO), 1) as CAMPO,
En el ejemplo usamos dos funciones substr  y getlength, estas nos sirven para hacer un recorrido de los datos y obtenerlos por completo en un buffer que luego podemos manejar como string.
DBMS_LOB también podemos usarla con campos LOB*: BLOB, CLOB, NCLOB, BFILE.



3 Respuestas
Alejandro Diaz
mayo 31st, 2011 a 6:05 pm
1Hola yo tenia entendido que esa era una excelente solucion, pero cuando lees campos mayores a 4000 caracteres, no funciona.
ORA-06502: PL/SQL: error : character string buffer too small numérico o de valor
VideoTutoriales
junio 1st, 2011 a 1:27 pm
2Nunca se me habÃa dado el caso, gracias por el apunte.
Hector Elejalde
abril 25th, 2012 a 11:35 pm
3como hago para ver lo datos reales que se encuentran almacenados en un campo CLOB, ya que al realizar la consulta SQL me muestra con datos de exponenciales ejemplo: ’1.05E8′
Insertar al RSS los comentarios de esta entrada
Escribe tu comentario