Em um comentário você disse:
A documentação de
getSubString
afirma que:Com uma função simples para gerar e retornar um CLOB, posso recuperá-lo via JDBC (
ojdbc5
ou ojdbc6
) sem problemas, seja com getCLOB()
ou getString()
. Mas se eu tentar atribuir o Oracle.sql.CLOB
recuperado com getCLOB
para uma String
usando String x = getSubString(0, clob.length());
então eu também recebo os
Invalid argument(s) in call
erro. Apenas alterando isso para:String x = getSubString(1, clob.length());
funciona. Portanto, parece não ter nada a ver com a alocação temporária na função ou com o tamanho do CLOB. Não entendo por que você não teve um problema com CLOBs menores - talvez sua lógica não tenha atingido isso se eles fossem pequenos?
Enquanto isso, você resolveu isso com
clob.getCharacterStream().read()
, então isso pode ser um pouco irrelevante agora.