簡體   English   中英

從存儲過程中獲取多重值

[英]get multipulate value from stored procedure

我有這個存儲過程:

ALTER PROCEDURE dbo.getRegionsInArea
    (
    @areaID int,
    @ID int OUTPUT,
    @name varchar(50) OUTPUT
    )
AS
BEGIN
    SET NOCOUNT ON
    SELECT @ID = [ID], @name = [name] FROM Region
    WHERE areaID = @areaID
    END

我想從JDBC調用它。

questiong

如何獲取變量的所有值輸出IDname因為存儲過程會返回它們的許多值。

我嘗試了什么

Connection con = Database.getConnection();
            String storedProcedure = "{call getRegionsInArea (?,?,?)}";
            CallableStatement callableStatement = null;
            try {
                callableStatement = con.prepareCall(storedProcedure);
                callableStatement.setInt(1, getID());
                callableStatement.registerOutParameter(2,
                        java.sql.Types.INTEGER);
                callableStatement.registerOutParameter(3,
                        java.sql.Types.VARCHAR);
                callableStatement.execute();
                    System.out.println("ID = " + callableStatement.getInt(2));
                    System.out.println("name = "
                            + callableStatement.getString(3));

問題

我剛收到IDname的最后一個值。

請幫忙

試試這個解決方案:

callableStatement = con.prepareCall(storedProcedure); 
callableStatement.setInt(1, getID()); 
callableStatement.execute(); 
ResultSet resultSet = callableStatement.getResultSet(); 
while (resultSet.next()) { 
   int returnedID = resultSet.getInt(1); 
   String returnedName = resultSet.getString(2);   
}

並改變你的SP像:

ALTER PROCEDURE dbo.getRegionsInArea 
( 
@areaID int
) 
AS 
BEGIN 
SET NOCOUNT ON 
SELECT [ID],[name] FROM Region 
WHERE areaID = @areaID 
END

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM