如何调用MSSQL从Java存储过程

问题描述 投票:-1回答:1

我试图从Java调用存储过程,我有一些问题得到呼叫通过正确。我看过了无数的例子,但它们不匹配的存储过程,我试图调用的语法。

    STORED PROCEDURE CODE
    ------------------------
    GO
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    ALTER PROCEDURE [dbo].[getMgr]
    @UserID as varchar(5),
    @ModeType as char(1)
    AS
    BEGIN
    SELECT usermgrid from AllEmployees WHERE (ModeType = @ModeType AND UserID = 
    @UserID)
    END
JAVA CODE
----------------------------
    connection = getConnection();
    cs = connection.prepareCall("{call lvhsp_GetManager(?, ?) }");
    cs.setString(0, someUserID);
    cs.setString(1, "0");
    ResultSet resultSet = cs.executeQuery();

我试图调用存储过程的许多不同的方式,但我仍然得到错误。

当我这样称呼它,我得到一个:

com.microsoft.sqlserver.jdbc.SQLServerException:索引0超出范围。

我以为是因为这是不通过参数的正确方法。

我也试图与参数名称(用户名,ModeType)有和没有@调用它,但是不起作用。

我在想什么?

java liferay mssql-jdbc
1个回答
1
投票

试着用下面的代替:

cs.setString(1, someUserID);
cs.setString(2, "0");
© www.soinside.com 2019 - 2024. All rights reserved.