Как вызвать хранимую процедуру MSSQL из Java - PullRequest
0 голосов
/ 05 февраля 2019

Я пытаюсь вызвать хранимую процедуру из 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 отсутствуетдиапазона.

Что я предполагаю, потому что это не правильный способ передачи параметра.

Я также пытался вызывать его с именами параметров (UserID, ModeType) с и без@, но это не сработает.

Чего мне не хватает?

1 Ответ

0 голосов
/ 05 февраля 2019

Попробуйте вместо этого:

cs.setString(1, someUserID);
cs.setString(2, "0");
...