Descarga WorkNotes y aumenta tu productividad

Obtener valores de un campo CLOB en Oracle

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.

Esta entrada fue publicada en chuletario, Programacion y etiquetada , , , , , , , , , , . Guarda el enlace permanente.

Una respuesta a Obtener valores de un campo CLOB en Oracle

  1. mirdey dijo:

    Este error me genera siguiente el ejemplo:

    [Error] Execution (77: 8): ORA-06502: PL/SQL: error : buffer de cadenas de caracteres demasiado pequeño numérico o de valor
    ORA-06512: en línea 1

Deja un comentario

Tu dirección de correo electrónico no será publicada.