CallableStatement retornando grandes Strings

2 respostas
A

Olá Pessoal,

Gostaria de tirar uma dúvida com vocês a respeito da chamada de uma stored procedure. Quando minha stored procedure retorna um valor maior que 65534 caracteres dá o seguinte erro:

Exception in thread "main" java.sql.SQLException: Incorrect list format, unknown type: 0
	at com.intersys.jdbc.SysList.getInt(SysList.java:1688)
	at com.intersys.jdbc.CachePreparedStatement.execute(CachePreparedStatement.java:444)
	at br.com.sluzia.pwgi.testes.TesteRotina.testeTamanho(TesteRotina.java:26)
	at br.com.sluzia.pwgi.testes.TesteRotina.main(TesteRotina.java:83)

E minha chamada da rotina está da seguinte maneira:

public static String testeTamanho() throws Exception {
		Connection conn = CacheDAO.getConnectionOficial();
		try {
			CallableStatement cstmt;
			String rtn = "? = CALL tecnica.GeralFacade_testeTamanho()";
			cstmt = conn.prepareCall(rtn);
			cstmt.registerOutParameter(1, Types.LONGVARCHAR);
			cstmt.execute();
			String retorno = (String)cstmt.getObject(1);

			cstmt.close();
			return retorno.toString();
		} catch (Exception e) {
			throw e;
		} finally {
			conn.close();
		}
	}

Minha dúvida é se estou com um problema de limite de caracteres do Driver do banco (Intersystems Caché 2008.2) ou se estou errando na chamada da stored procedure no Java. Acredito que pouquíssimas pessoas já trabalharam ou trabalham com Caché, mas talvez seja algum erro comum que eu esteja me perdendo.

Agradeço a atenção pessoal,

Anderson

2 Respostas

A

Outra informação é que consegui realizar a chamada da stored procedure via Web Service. Só que pelo JDBC seria bem mais performático, certo? Por favor não se acanhem, qualquer ajuda é bem vinda :slight_smile:

A

ninguem tem noção do que possa ser isso? :roll:

Criado 22 de julho de 2009
Ultima resposta 24 de jul. de 2009
Respostas 2
Participantes 1