Oracle
 sql >> Database >  >> RDS >> Oracle

Come restituire un'istanza CLOB temporanea dalla funzione archiviata in Pl/SQL?

In un commento hai detto:

La documentazione di getSubString afferma che:

Con una semplice funzione per generare e restituire un CLOB, posso recuperarlo su JDBC (ojdbc5 o ojdbc6 ) senza problemi, neanche con getCLOB() o getString() . Ma se provo ad assegnare il Oracle.sql.CLOB recuperato con getCLOB a una String usando

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

quindi ottengo anche gli Invalid argument(s) in call errore. Basta cambiarlo in:

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

lavori. Quindi sembra non avere nulla a che fare con l'allocazione temporanea nella funzione o la dimensione del CLOB. Non capisco perché non hai avuto problemi con i CLOB più piccoli - forse la tua logica non ha colpito questo se erano piccoli?

Nel frattempo hai risolto questo problema con clob.getCharacterStream().read() , quindi questo potrebbe essere un po' irrilevante ora.