8 Abr
Obtener valores de un campo CLOB en Oracle
Posted on 2009 under Programacion, chuletario | 15 comentariosLos 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 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.

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…
Lo dijo Charo, el Abril 8 2009 @ 18:02
Claro, claro, lo mismo había pensado yo…
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…
Lo dijo Charo, el Abril 8 2009 @ 18:58
No te será dificil que el post sea más divertido jijijiji.
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
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.
Lo dijo Ari, el Abril 15 2009 @ 20:57
multi que? yo quiero que funcione y si lo tienes para ayer mejor.
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
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
Lo dijo Harold, el Agosto 17 2009 @ 21:16
gracias por el aporte, excelente…
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).
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
Lo dijo CHVAEZ, el Febrero 23 2011 @ 15:36
cada ves que inserto me sale clob en cada columna
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.
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.