Dans un commentaire, vous avez dit :
La documentation de getSubString
déclare que :
Avec une fonction simple pour générer et renvoyer un CLOB, je peux le récupérer via JDBC (ojdbc5
ou ojdbc6
) sans problème, soit avec getCLOB()
ou getString()
. Mais si j'essaie d'attribuer le Oracle.sql.CLOB
récupéré avec getCLOB
à une String
en utilisant
String x = getSubString(0, clob.length());
puis j'obtiens également le Invalid argument(s) in call
Erreur. Changez simplement cela en :
String x = getSubString(1, clob.length());
œuvres. Cela semble donc n'avoir rien à voir avec l'allocation temporaire dans la fonction ou la taille CLOB. Je ne comprends pas pourquoi vous n'avez pas eu de problème avec les petits CLOB - peut-être que votre logique n'a tout simplement pas atteint cela s'ils étaient petits ?
En attendant, vous avez contourné ce problème avec clob.getCharacterStream().read()
, donc cela peut être un peu hors de propos maintenant.