La procédure ou la fonction comporte trop d'arguments : identification et résolution du problème
Lors de l'exécution d'une procédure stockée qui appelle une autre procédure stockée, vous pouvez rencontrez l'erreur "La procédure ou la fonction [nom] a trop d'arguments spécifiés." Cette erreur indique que la procédure appelante tente de transmettre trop d'arguments à la procédure appelée.
Comprendre le message d'erreur
Le message d'erreur spécifie qu'une procédure stockée particulière ou la fonction, dans ce cas, "etl_M_Update_Promo", a reçu plus d'arguments qu'elle ne peut en gérer. Cela signifie que le code appelant la procédure tente de lui envoyer plus de paramètres que la procédure n'est conçue pour en recevoir.
Identifier les arguments excessifs
Pour déterminer l'excès d'arguments arguments, comparez le nombre de paramètres transmis à la procédure dans le code appelant avec le nombre déclaré dans la définition de la procédure appelée. Dans ce cas, vous invoquez "etl_M_Update_Promo" avec deux paramètres ("@GenID" et "@Description"), alors que la procédure n'a qu'un seul paramètre déclaré ("@GenId").
Résolution le problème
La solution est de modifier le code appelant pour l'aligner sur la liste des paramètres de la procédure. La définition de la procédure peut également être modifiée si nécessaire. Voici comment résoudre le problème dans ce cas précis :
Modifier le code d'appel : Ajustez le code qui appelle "etl_M_Update_Promo" pour fournir uniquement le paramètre requis : " @GenID."
EXEC etl.etl_M_Update_Promo @GenID
Modifier la procédure Définition : Vous pouvez également modifier la définition de "etl_M_Update_Promo" pour accepter deux paramètres, en ajoutant la ligne suivante :
@Description NVARCHAR(50)
Définition de procédure révisée :
ALTER PROCEDURE [etl].[etl_M_Update_Promo] @GenId bigint = 0, @Description NVARCHAR(50) AS .... Rest of your code.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!