Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

1318 - Incorrect number of arguments for PROCEDURE

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?

like image 612
andreszam24 Avatar asked Dec 19 '22 13:12

andreszam24


1 Answers

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

like image 179
andreszam24 Avatar answered Mar 29 '23 11:03

andreszam24