|
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.
|