Los campos tipo CLOB en Oracle son equivalentes a los campos tipo TEXT en postgres o los tipo MEMO en mysql, puedes almacenar muchísima información de tipo texto en ellos.

oracle_joke

Una columna CLOB puede contener hasta 4GB de información… imagínate! la biblia en braille por lo menos.

El tema es que obtener el valor de un campo CLOB en un SELECT no es tan sencillo como en postgres o mysql, CLOB es un objeto y hay que usar la librería DBMS_LOB para manejarlo.

Las dos funciones útiles para leer un campo CLOB son las siguientes:

DBMS_LOB.substr(CLOB, longitud, posicion_inicial);

DBMS_LOB.getlength(CLOB);

Combinándolas, podemos obtener el contenido de una columna CLOB para nuestro SELECT.

Supongamos una tabla tablaprueba con un campo observaciones de tipo CLOB:

SELECT DBMS_LOB.substr(observaciones,DBMS_LOB.getlength(observaciones),1) FROM tablaprueba;

Así de fácil :)

Si el campo de texto que queremos crear tendrá menos de 4000 caracteres… mejor usar un VARCHAR2.

Ya se han hecho 15 comentarios »

  1. Lo dijo Bitacoras.com, el Abril 8 2009 @ 17:35

     

    Información Bitacoras.com…

    Valora en Bitacoras.com: Los campos tipo CLOB en Oracle son equivalentes a los campos tipo TEXT en postgres o los tipo MEMO en mysql, puedes almacenar muchísima información de tipo texto en ellos. Una columna CLOB puede contener hasta 4GB de informac…

  2. Lo dijo Charo, el Abril 8 2009 @ 18:02

     

    Claro, claro, lo mismo había pensado yo…

  3. Lo dijo acatos, el Abril 8 2009 @ 18:17

     

    xD vaaale, mañana pongo un post más divertido :) creo que pondré una escena hilarante de una película muy buena…

  4. Lo dijo Charo, el Abril 8 2009 @ 18:58

     

    No te será dificil que el post sea más divertido jijijiji.

  5. Lo dijo Ari, el Abril 15 2009 @ 14:35

     

    tambien se puede utilizar la anotacion @Lob de Hibernate y mapearlo directamente a un string sin tener que hacer nada… ¿ah no se puede? :-p

  6. Lo dijo acatos, el Abril 15 2009 @ 18:29

     

    Pos para mi gusto, una sentencia sql es más “multiplataforma” que una anotación de hibernate.

  7. Lo dijo Ari, el Abril 15 2009 @ 20:57

     

    multi que? yo quiero que funcione y si lo tienes para ayer mejor.

  8. Lo dijo Ari, el Abril 15 2009 @ 20:58

     

    jaja como el wordpress parsea los tags estilo html se cargo la gracia de mi comentario anterior xD

    Cuando escribió este comentario, Ari hablaba en su blog de Benjamin Button: Oscars 0 The Wrestler 2

  9. Lo dijo acatos, el Abril 15 2009 @ 22:56

     

    ¿y que tag era?

    No hay nada que sea más para ayer que el sql, yo soy fan de las funciones pl/pgsql y pl/sql… es más, todo software debería ser un solo select xD

  10. Lo dijo Harold, el Agosto 17 2009 @ 21:16

     

    gracias por el aporte, excelente…

  11. Lo dijo Julo, el Agosto 24 2009 @ 15:45

     

    Hola chicos. Tengo que guardar un xml de mas de 4000 bytes en base de datos.

    1) Cuales son los pros y contras de guardarlo en un CLOB en comparacion a un BLOB?

    2) Se degrada la performance de un VARCHAR2 a un CLOB/BLOB? (Suponiendo que por ahora los datos guardados son todos menores a 4000 bytes).

  12. Lo dijo Anónimo, el Enero 27 2011 @ 12:50

     

    Oyes que te iba a comentar…esta dabuti la función pero con valores de más de 5000 caracteres mira lo que me pone:

    SELECT DBMS_LOB.SUBSTR (valor,DBMS_LOB.getlength(valor),1) FROM tabla_valor
    *
    ERROR en línea 1:
    ORA-06502: PL/SQL: error : buffer de cadenas de caracteres demasiado pequeño
    numérico o de valor
    ORA-06512: en línea 1

    do you know what’s wrong?

    gracias

    un saludito

  13. Lo dijo CHVAEZ, el Febrero 23 2011 @ 15:36

     

    cada ves que inserto me sale clob en cada columna

  14. Lo dijo Ana Sofia, el Mayo 17 2011 @ 18:01

     

    y si en el campo clob se grabó una foto, un documento, como hago para mostrar esa información en un formulario?
    gracias.

  15. Lo dijo Ramon, el Agosto 23 2011 @ 13:22

     

    Hola amigos:

    Tengo un problemita con un campo tipo CLOB ya que no puedo almacenar mas de 3999 caracteres.

    ¿Alguien tiene alguna idea de como se hace esto?

    Se lo Agradezco.

Comment RSS · TrackBack URI

Dejar un comentario

Nombre:

eMail:

Website:

Comment:

CommentLuv Activado
 

Acatos

Algunos derechos reservados
Esta obra está bajo una licencia Creative Commons.