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.


Te puede interesar:

3 comentarios sobre “Leer clob en oracle (ORA-00932)

  • el 31 mayo, 2011 a las 6:05 pm
    Permalink

    Hola 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

    Respuesta
  • el 25 abril, 2012 a las 11:35 pm
    Permalink

    como 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’

    Respuesta

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.