4 Stimmen

1318 - Falsche Anzahl von Argumenten für 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

Wenn ich diese Prozedur verwende, erhalte ich den Fehler "erwartet 8, erhalten 7." Ich verstehe das nicht, wenn wir uns den Code ansehen, gibt es 7 Eingabeparameter und einen Ausgabeparameter. Es scheint, dass der Ausgabeparameter auch bei Aufruf der Prozedur angegeben werden muss, irgendwelche Ideen warum?

11voto

andreszam24 Punkte 351

Sie müssen den Ausgabeparameter referenzieren

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

um das Ergebnis zu sehen, führen Sie aus Select @a oder Select res

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X