Piedra, Papel o Tijera
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 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.
Party Game
1 respuesta a «Obtener valores de un campo CLOB en Oracle»
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