DROP PROCEDURE `ModificarUsuario`//
CREATE DEFINER=`root`@`localhost` PROCEDURE `ModificarUsuario`(
IN `Aid` INT,
IN `Aced` VARCHAR(100),
IN `Anombre` VARCHAR(100),
IN `Acargo` VARCHAR(100),
IN `Acedula` VARCHAR(100),
IN `Ausuario` VARCHAR(100),
IN `Apass` VARCHAR(100),
OUT `res` VARCHAR(10) )
BEGIN
SELECT COUNT(usuario) INTO res FROM `usuario` WHERE `cedula`=Aced and `id`<>Aid;
IF res =0 THEN
UPDATE `usuario` SET cedula=Aced, nombre=Anombre, cargo=Acargo, usuario=Ausuario, contrasena=Apass WHERE cedula=Acedula;
END IF;
END
当我使用这个程序时,我得到错误&#34;预期8,得到7。&#34;我不明白这一点,如果我们查看代码,有7个输入参数和一个输出参数。看来out参数也需要在调用程序时指定,任何想法为什么?
答案 0 :(得分:10)
您需要引用out参数
CALL ModificarUsuario('6','9123','Sandra','Profesor','12345','sandru','sdf',@a)
查看结果执行 Select @a
或 Select res