Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Nhận giá trị trả lại từ JDBC MSSQL

Câu trả lời sửa đổi lần thứ 2 của Bozho là gần nhưng không hoàn toàn ở đó. Tuy nhiên, nó đã dẫn tôi đến câu trả lời.

Lấy ví dụ mã mà tôi đã bắt đầu với chúng tôi kết thúc bằng:

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

Phần quan trọng ở đây là dấu "? =" Trước "lệnh gọi" trong prepareCall hàm thiết lập một vị trí cho giá trị trả về và registerOutputParameter . Nó phải được đăng ký dưới dạng Số nguyên, vì giá trị trả về luôn là int (ít nhất là trong SQL Server, có thể nó khác trong các DB khác). Do đó, bạn phải lấy nó bằng cách sử dụng getInt . Tôi đã thử nghiệm phương pháp này và nó hoạt động.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để thay thế nhiều ký tự trong SQL?

  2. Làm thế nào để sử dụng một biến cho tên cơ sở dữ liệu trong T-SQL?

  3. Tạo tập hợp các ngày tăng dần trong TSQL

  4. Buộc hết thời gian chờ truy vấn trong SQL Server

  5. Điều gì cần làm cho kiểu chờ ASYNC NETWORK IO?