Trop de paramètres dans l'appel de procédure stockée
Le message d'erreur "Procédure ou fonction xxx, trop d'arguments spécifiés" indique une incompatibilité entre le nombre des paramètres spécifiés dans un appel de procédure stockée et le nombre de paramètres déclarés dans la définition de la procédure stockée.
Dans ce cas particulier, vous appelez la procédure stockée "[dbo].[M_UPDATES]" qui appelle à son tour une autre procédure stockée "[etl_M_Update_Promo]". L'erreur se produit car "[etl_M_Update_Promo]" est déclaré pour accepter un seul paramètre @GenId, mais vous lui transmettez deux paramètres (@GenID et @Description) dans l'appel de "[dbo].[M_UPDATES]".
Identification des paramètres incompatibles
Pour identifier l'inadéquation exacte, examinez la déclaration des paramètres stockés procédure "[etl_M_Update_Promo]":
ALTER PROCEDURE [etl].[etl_M_Update_Promo] @GenId bigint = 0 as
Cette déclaration spécifie que la procédure prend un paramètre, @GenId, qui est un type de données bigint et a une valeur par défaut de 0. Dans votre appel depuis "[dbo ].[M_UPDATES]", vous transmettez deux paramètres, mais le deuxième paramètre (@Description) n'est pas déclaré dans la définition de la procédure, provoquant ainsi le erreur.
Ajustement de la liste des paramètres
Pour résoudre l'erreur, vous devez modifier la déclaration de "[etl_M_Update_Promo]" pour inclure le deuxième paramètre :
ALTER PROCEDURE [etl].[etl_M_Update_Promo] @GenId bigint = 0, @Description NVARCHAR(50) AS .... Rest of your code.
En spécifiant @Description comme paramètre supplémentaire dans la déclaration de la procédure, vous pouvez désormais le transmettre légalement lors de l'appel "[etl_M_Update_Promo]" de "[dbo].[M_UPDATES]".
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!