나는 mysql에 프로 시저를 가지고 있으며 입력에는 4 개의 매개 변수가 있고 OUTPUT에는 3 개의 매개 변수가 있고 OUTPUT의 매개 변수 하나는 아무것도 반환하지 않습니다 (null).호출 프로 시저 mysql의 반환 값 없음
DELIMITER $$
drop procedure if exists `cierreMes`$$
create procedure cierreMes (in tarjeta varchar(100),in bancoBus varchar(100),in mes int,in anyo int, out total int, out nulas int, out erroneas int)
begin
declare stockActual int default 0;
declare cantidad int;
/*declare xcantidad,xnulas,xerroneas int;*/
declare entrada, salida int default 0;
declare total int default 0;
select stock
into stockActual
from almacen
where idProducto =
(select idProducto from productos where productos.banco = bancoBus and productos.plastico = tarjeta);
call entradasSalidas(tarjeta,bancoBus,mes,anyo,@ent,@sal);
set entrada = @ent;
set salida = @sal;
call obtenerMovimientosMes(tarjeta,bancoBus,mes,anyo,@cant,@nul,@err);
set cantidad = @cant;
set nulas = @nul;
set erroneas = @err;
set total =(stockActual + entrada) - (salida + cantidad);
select total;
end$$
DELIMITER ;
call cierreMes('4B MC','SANTANDER',3,2013, @total, @nulas, @erroneas);
select @total, @nulas, @erroneas;
내가 "전화"않습니다 @nulas 및 @erroneas는 아무것도 @total 값을 반환하지 않지만.
전체 선택 작동시, 잘 동작합니다. 반환 값은이 선택에서 : @total, @nulas, @erroneas를 선택하십시오. @total은 null입니다.
안녕하세요! 해결되었습니다. 문제는이 줄에 있습니다 : declare total int default 0; 문제를 삭제하면 문제가 사라집니다. – GdePablos