Valeur de retour de la procédure stockée MySQL
- Je créer un SP qui renvoie une valeur si elle est valide ou pas. Mais il ne retourne rien, et je ne sais pas, pourquoi?
CREATE DEFINER=`root`@`localhost` PROCEDURE `validar_egreso`(
IN codigo_producto VARCHAR(100),
IN cantidad INT,
OUT valido INT(11)
)
BEGIN
DECLARE resta INT(11);
SET resta = 0;
SELECT (s.stock - cantidad) INTO resta
FROM stock AS s
WHERE codigo_producto = s.codigo;
IF (resta > s.stock_minimo) THEN
SET valido = 1;
ELSE
SET valido = -1;
END IF;
SELECT valido;
END
source d'informationauteur Juanma
Vous devez vous connecter pour publier un commentaire.
Vous avez terminé la procédure stockée correctement, mais je pense que vous n'avez pas référencé de la
valido
variable correctement. Je la regardais quelques exemples et ils ont mis un symbole @ devant le paramètre comme ceci@Valido
Cette déclaration
SELECT valido;
devrait ressembler à ceciSELECT @valido;
Regardez ce lien mysql procédure stockée: paramètre de sortie. Avis de la solution avec 7 upvotes. Il a de référence le paramètre avec un signe@, donc je vous suggère d'ajouter un signe @ avant votre paramètre valido
J'espère que fonctionne pour vous. si elle ne vote et le marquer comme réponse. Si non, dites-moi.
Ajouter:
DELIMITER
au début et à la fin de la SP.validar_egreso
; au début@variableName
.Cela fonctionne pour moi. (J'ai modifié une partie de votre script, donc n'importe qui peut l'exécuter sans avoir de vos tables).
Mise à jour de votre SP et la poignée d'exception à l'aide de déclarer gestionnaire avec obtenir des diagnostics de sorte que vous savez si il y a une exception.
par exemple,