sql >> Database >  >> RDS >> Sqlserver

De retourwaarde verkrijgen van JDBC MSSQL

Bozho's 2e herziene antwoord was dichtbij, maar niet helemaal daar. Het leidde me echter wel naar het antwoord.

Als we het codevoorbeeld nemen waarmee ik begon, eindigen we met:

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

De belangrijkste onderdelen hier zijn de "? =" voor de "call" in de prepareCall functie die een plaats instelt voor de retourwaarde en de registerOutputParameter . Het moet worden geregistreerd als een geheel getal, omdat de geretourneerde waarde altijd een int is (tenminste in SQL Server, misschien is het anders in andere DB's). Je moet het daarom verkrijgen met getInt . Ik heb deze methode getest en het werkt.



  1. Een primaire sleutel gebruiken met een WithoutRowID

  2. ORA-03135 – RMAN Duplicaat

  3. Vergelijkingsprobleem met Oracle PL/SQL-tekenreeksen

  4. UTC_TIME Voorbeelden – MySQL