sql >> Base de Datos >  >> RDS >> Oracle

¿Cómo devolver la instancia CLOB temporal de la función almacenada en Pl/SQL?

En un comentario dijiste:

La documentación de getSubString establece que:

Con una función simple para generar y devolver un CLOB, puedo recuperarlo a través de JDBC (ojdbc5 o ojdbc6 ) sin problemas, ya sea con getCLOB() o getString() . Pero si trato de asignar el Oracle.sql.CLOB recuperado con getCLOB a una String usando

String x = getSubString(0, clob.length());

luego también obtengo el Invalid argument(s) in call error. Simplemente cambiando eso a:

String x = getSubString(1, clob.length());

obras. Entonces parece no tener nada que ver con la asignación temporal en la función o el tamaño de CLOB. No entiendo por qué no tuviste problemas con los CLOB más pequeños. ¿Quizás tu lógica simplemente no dio en el blanco si fueran pequeños?

Mientras tanto, ha solucionado esto con clob.getCharacterStream().read() , por lo que esto puede ser un poco irrelevante ahora.