Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Como retornar a instância CLOB temporária da função armazenada no Pl/SQL?


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.