вызов хранимой процедуры в mybatis - PullRequest
0 голосов
/ 04 октября 2019

У меня есть хранимая процедура на сервере sql, понимание ее создания выглядит примерно так:

ALTER PROCEDURE [dbo].[P_BI_PROF_RUN_PROCESS] 
(   @AD_PROCESS_DATE DATETIME, 
    @AS_USER VARCHAR(100), 
    @AL_PROCESS_ID INT , 
    @AL_PROCESS_STATUS INT OUTPUT
)
AS ....
..........

Следующий способ, когда я запускаю процесс в студии sql server, возвращает мне значение 0, 1.

DECLARE @RC int
DECLARE @AD_PROCESS_DATE datetime
DECLARE @AS_USER varchar(100)
DECLARE @AL_PROCESS_ID int
DECLARE @AL_PROCESS_STATUS int

-- TODO: Set parameter values here.

EXECUTE @RC = [dbo].[P_BI_PROF_RUN_PROCESS] 
'dec 31 2017'
,'SIKANDAR'
,2
,@AL_PROCESS_STATUS OUTPUT
select @AL_PROCESS_STATUS --returned status

Когда я запускаю эту процедуру на сервере sql, она дает мне результат 0 или 1, в течение 5 секунд ожидания, потому что я установил задержку в 5 секунд, как показано ниже:

procedure output in sqlserver

В моем батисе я называю это так, и оно не возвращает мне никакого значения, но входит в него и никогда не возвращается назад. Код в mybatis:

<select id="proceedToProcedure" parameterType="calcProcessSC" statementType="CALLABLE" >

     { 
        CALL P_BI_PROF_RUN_PROCESS
        (
            #{asOfDate,     mode=IN,    jdbcType=DATE},
            #{user,         mode=IN,    jdbcType=VARCHAR},
            #{processId,    mode=IN,    jdbcType=NUMERIC},
            #{output,       mode=OUT,   jdbcType=BIGINT}
        )

     }

</select>

Мне нужна ваша помощь в вызове вышеупомянутой процедуры в mybatis для возврата 0,1, так же, как и в самом sql-сервере. Я не знаю, если я что-то путаю в синтаксисе в mybatis. В ожидании вашего ответа.

Спасибо!

...