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.