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.


Tags :

Comments (3)

  • Alejandro Diaz 31 mayo, 2011

    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

    Reply
    • VideoTutoriales 1 junio, 2011

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

      Reply
  • Hector Elejalde 25 abril, 2012

    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’

    Reply

Leave a comment

Sign in to post your comment or sine up if you dont have any account.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Tu software de gestión


Últimas preguntas:

Logo Dkreativo
Vertutoriales