1318 - Incorrect number of arguments for PROCEDURE

匿名 (未验证) 提交于 2019-12-03 08:57:35

问题:

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 

When I use this procedure I get the error "expected 8, got 7." I don't understand this, if we look at the code there are 7 input parameters and one out parameter. It seems that the out parameter needs to be specified as well when calling the procedure, any idea why?

回答1:

You need to reference the out parameter

CALL ModificarUsuario('6','9123','Sandra','Profesor','12345','sandru','sdf',@a) 

to see result execute Select @a or Select res



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!