Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Obtendo o valor de retorno do JDBC MSSQL


A segunda resposta revisada de Bozho estava próxima, mas não exatamente lá. Isso me levou à resposta embora.

Tomando o exemplo de código com o qual comecei, acabamos com:
CallableStatement proc = connection.prepareCall("{ ? = call dbo.mySproc() }");
proc.registerOutParameter(1, Types.INTEGER);
proc.execute();
int returnValue = proc.getInt(1);

As peças-chave aqui são o "? =" na frente da "chamada" no prepareCall função que configura um local para o valor de retorno e o registerOutputParameter . Tem que ser registrado como Integer, pois o valor de retorno é sempre um int (pelo menos no SQL Server, talvez seja diferente em outros BDs). Portanto, você deve obtê-lo usando getInt . Testei esse método e funciona.