Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Получаване на връщаната стойност от JDBC MSSQL

Вторият преработен отговор на Божо беше близо, но не съвсем. Това обаче ме доведе до отговора.

Вземайки примера с код, с който започнах, в крайна сметка получаваме:

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

Ключовите елементи тук са "? =" пред "call" в prepareCall функция, която задава място за връщаната стойност и registerOutputParameter . Тя трябва да бъде регистрирана като цяло число, тъй като връщаната стойност винаги е int (поне в SQL Server, може би е различно в други DB). Следователно трябва да го получите с помощта на getInt . Тествах този метод и той работи.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. съхранени процедури с sqlAlchemy

  2. Важна промяна в разширените събития в SQL Server 2012

  3. SQL сървър (MSSQL DBA) Уроци за база данни за начинаещи администратори на бази данни

  4. Заявка за изброяване на броя на записи във всяка таблица в база данни

  5. Кои колони обикновено правят добри индекси?