Maison > base de données > tutoriel mysql > Pourquoi mon appel de procédure stockée échoue-t-il avec « trop d'arguments spécifiés » ?

Pourquoi mon appel de procédure stockée échoue-t-il avec « trop d'arguments spécifiés » ?

Linda Hamilton
Libérer: 2024-12-27 08:06:09
original
366 Les gens l'ont consulté

Why Does My Stored Procedure Call Fail with

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
Copier après la connexion

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.
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal