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

  • Alejandro Diaz commented on 31 mayo, 2011 Reply

    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

    • VideoTutoriales commented on 1 junio, 2011 Reply

      Nunca se me había dado el caso, gracias por el apunte.

  • Hector Elejalde commented on 25 abril, 2012 Reply

    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’

Deja un comentario

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