1318 - PROCEDURE 的参数数量不正确 [英] 1318 - Incorrect number of arguments for PROCEDURE

查看:68
本文介绍了1318 - 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

当我使用这个程序时,我收到错误预期 8,得到 7".我不明白这个,如果我们看代码有7个输入参数和一个输出参数.好像调用过程的时候也需要指定out参数,知道为什么吗?

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?

推荐答案

需要引用out参数

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

查看结果执行 选择@a 选择res

这篇关于1318 - PROCEDURE 的参数数量不正确的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆