Saltar al contenido

Cómo consultar una columna CLOB en Oracle

Solución:

Esto funciona

select DBMS_LOB.substr(myColumn, 3000) from myTable

Al obtener la subcadena de una columna CLOB y usar una herramienta de consulta que tiene restricciones de tamaño / búfer, a veces necesitará establecer el BÚFER en un tamaño mayor. Por ejemplo, mientras usa SQL Plus, use el SET BUFFER 10000 para establecerlo en 10000 ya que el valor predeterminado es 4000.

Ejecutando el DBMS_LOB.substr comando también puede especificar la cantidad de caracteres que desea devolver y el desplazamiento desde el cual. Entonces usando DBMS_LOB.substr(column, 3000) podría restringirlo a una cantidad lo suficientemente pequeña para el búfer.

Consulte la documentación de Oracle para obtener más información sobre el comando substr

    DBMS_LOB.SUBSTR (
       lob_loc     IN    CLOB   CHARACTER SET ANY_CS,
       amount      IN    INTEGER := 32767,
       offset      IN    INTEGER := 1)
      RETURN VARCHAR2 CHARACTER SET lob_loc%CHARSET;

Me encontré con otra condición con HugeClob en mi base de datos de Oracle. los dbms_lob.substr solo se permite un valor de 4000 en la función, por ejemplo:

dbms_lob.substr(column,4000,1)

así que para mi HughClob, que era más grande, tuve que usar dos llamadas en select:

select dbms_lob.substr(column,4000,1) part1, 
       dbms_lob.substr(column,4000,4001) part2 from .....

Estaba llamando desde una aplicación Java, así que simplemente concatené part1 y part2 y las envié como un correo electrónico.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *