Title: Francisco Jodevan Campelo - Analista de Sistemas
 

Olá, amigos.
 
Estou precisando executar uma função SQL usando Java. Quando a função retorna um valor não acontece nenhum erro, mas eu gostaria de saber como proceder quando ela retorna uma tabela.
Estou fazendo da seguinte maneira:
 
CallableStatement cs = c.prepareCall("{?= call f_ReturnResultSet}");
cs.registerOutParameter(1, Types.INTEGER);
cs.execute();
Object x = cs.getObject(1);
 
Abaixo está o código da função (em Transact SQL):
create function f_ReturnResultSet() returns table as
    return select * from funcionario
 
Quando o código é executado o seguinte erro ocorre:

java.sql.SQLException: The request for procedure 'f_ReturnResultSet' failed because 'f_ReturnResultSet' is a function object.

at net.sourceforge.jtds.jdbc.SqlMessage.toSQLException(SqlMessage.java:392)

at net.sourceforge.jtds.jdbc.SQLWarningChain.addOrReturn(SQLWarningChain.java:91)

at net.sourceforge.jtds.jdbc.Tds.goToNextResult(Tds.java:752)

at net.sourceforge.jtds.jdbc.TdsStatement.getMoreResults(TdsStatement.java:710)

at net.sourceforge.jtds.jdbc.TdsStatement.executeCallImpl(TdsStatement.java:302)

at net.sourceforge.jtds.jdbc.TdsStatement.internalExecuteCall(TdsStatement.java:282)

at net.sourceforge.jtds.jdbc.CallableStatement_base.execute(CallableStatement_base.java:492)

at net.sourceforge.jtds.jdbc.PreparedStatement_base.execute(PreparedStatement_base.java:115)

at flowmanager.Teste.main(Teste.java:24)

Exception in thread "main"

Se a função retornasse um valor (20, por exemplo) este seria exibido sem nenhum problema. Também não tive nenhum problema ao executar Stored Procedures.
 
Antecipadamente agradeço a alguém que puder me dar uma dica.
 

 
Francisco Jodevan Campelo
Analista de Sistemas

Grupo Secrel
[EMAIL PROTECTED]
www.gruposecrel.com.br

<<padraoemail.jpg>>

Responder a