我试图从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)有和没有@调用它,但是不起作用。
我在想什么?
试着用下面的代替:
cs.setString(1, someUserID);
cs.setString(2, "0");