sql >> Base de Datos >  >> RDS >> Sqlserver

Obtener el valor de retorno de JDBC MSSQL

La segunda respuesta revisada de Bozho estuvo cerca pero no del todo. Sin embargo, me llevó a la respuesta.

Tomando el ejemplo de código con el que comencé, terminamos con:

CallableStatement proc = connection.prepareCall("{ ? = call dbo.mySproc() }");
proc.registerOutParameter(1, Types.INTEGER);
proc.execute();
int returnValue = proc.getInt(1);

Las piezas clave aquí son el "? =" delante de la "llamada" en el prepareCall función que establece un lugar para el valor devuelto y el registerOutputParameter . Tiene que estar registrado como un número entero, ya que el valor devuelto siempre es un int (al menos en SQL Server, tal vez sea diferente en otras bases de datos). Por lo tanto, debe obtenerlo usando getInt . Probé este método y funciona.