Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Ottenere il valore di ritorno da JDBC MSSQL

La seconda risposta rivista di Bozho era vicina ma non del tutto presente. Tuttavia, mi ha portato alla risposta.

Prendendo l'esempio di codice con cui ho iniziato, finiamo con:

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

I pezzi chiave qui sono "? =" davanti alla "chiamata" nel prepareCall funzione che imposta una posizione per il valore restituito e il registerOutputParameter . Deve essere registrato come intero, poiché il valore restituito è sempre un int (almeno in SQL Server, forse è diverso in altri DB). Devi quindi ottenerlo usando getInt . Ho testato questo metodo e funziona.