我有一个存储过程,其中OUT参数正常工作:
CREATE PROCEDURE sp_actualizaConfigNotif
(@rut VARCHAR(9),
@Xml_Lista XML,
@registrosAfectados INT OUTPUT)
AS
BEGIN --Inicio SP
SET @registrosAfectados = 0;
--Inicio Cursor
declare @idEvento int,
@indActivo int,
@idMedioEnvio int
declare config_cursor cursor for
select
T.C.value('id_Evento[1]','nvarchar(255)') as idEventoParam,
T.C.value('ind_Activo[1]','nvarchar(255)') as indActivoParam,
T.C.value('id_MedioEnvio[1]','nvarchar(255)') as idMedioEnvioParam
from
@Xml_Lista.nodes('/Xml_ListaConfig/evento') T(C)
open config_cursor
fetch next from config_cursor into @idEvento, @indActivo, @idMedioEnvio
WHILE @@FETCH_STATUS = 0
BEGIN
UPDATE EM
SET EM.Estatus = @indActivo
FROM RELEvento_Medios AS EM
JOIN RELEvento_Cliente EC ON EC.id_Evento = EM.id_Evento
JOIN MSTCliente CL ON CL.id_Cliente = EC.id_Cliente
AND CL.Rut = @rut
AND EM.id_Evento = @idEvento
AND EM.id_MedioEnvio = @idMedioEnvio
SET @registrosAfectados = @registrosAfectados+@@ROWCOUNT;
FETCH NEXT FROM config_cursor INTO @idEvento, @indActivo, @idMedioEnvio
END
CLOSE config_cursor
DEALLOCATE config_cursor
--Fin Cursor
END; --Fin SP
EXEC dbo.sp_actualizaConfigNotif @rut = '174021821', @Xml_Lista = @parametroXml,@registrosAfectados = @returnvalue OUT;
SELECT @returnvalue;
这将返回OUT参数。
现在我正尝试对MyBatis做同样的事情:
<insert id="actualizaConfigNotif" parameterType="cl.itau.motor.dto.entrada.ActualizaConfigNotifDTO">
{call sp_actualizaConfigNotif(#{rut,javaType=String,jdbcType=VARCHAR,mode=IN},#{xml_lista,javaType=String,mode=IN},#{registros,javaType=Long,jdbcType=INTEGER ,mode=OUT})}
</insert >
阅读大量指南,我认为必须使用“ mode = OUT”指定OUT参数,但是当我对其进行测试时,会出现此错误:
org.springframework.jdbc.UncategorizedSQLException:
### Error updating database. Cause: com.microsoft.sqlserver.jdbc.SQLServerException: El valor no está configurado para el número de parámetro 3.
### The error may involve cl.itau.motor.dao.NotificacionDAO.actualizaConfigNotif-Inline
### The error occurred while setting parameters
### SQL: {call sp_actualizaConfigNotif(?,?,?)}
### Cause: com.microsoft.sqlserver.jdbc.SQLServerException: El valor no está configurado para el número de parámetro 3.
; uncategorized SQLException for SQL []; SQL state [null]; error code [0]; El valor no está configurado para el número de parámetro 3.; nested exception is com.microsoft.sqlserver.jdbc.SQLServerException: El valor no está configurado para el número de parámetro 3
那么,用batis返回OUT参数的正确方法是什么?
版本: