Maison >base de données >tutoriel mysql >Pourquoi est-ce que j'obtiens l'erreur « La procédure ou la fonction !!! a trop d'arguments spécifiés » ?

Pourquoi est-ce que j'obtiens l'erreur « La procédure ou la fonction !!! a trop d'arguments spécifiés » ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-21 05:05:15179parcourir

Why Am I Getting the

Procédure ou fonction avec des arguments excessifs

Le message d'erreur "Procédure ou fonction !!! a trop d'arguments spécifiés" indique qu'un fichier stocké la procédure ou la fonction a été invoquée avec un nombre d'arguments incorrect. Pour diagnostiquer et résoudre ce problème, suivez ces étapes :

  1. Identifiez la procédure stockée ou la fonction : Le message d'erreur indiquera le nom de la procédure stockée ou de la fonction problématique.
  2. Examinez la déclaration de fonction : Vérifiez la définition de la procédure stockée ou de la fonction dans la base de données pour déterminer le nombre attendu et les types de données de arguments.
  3. Comparez les arguments attendus et fournis : L'invocation de la procédure stockée ou de la fonction doit inclure le nombre correct d'arguments qui correspondent aux types de données spécifiés dans la déclaration. S'il y a plus d'arguments fournis que prévu, vous rencontrerez cette erreur.
  4. Exemple : Excès d'arguments dans l'appel de procédure stockée

Dans l'exemple fourni, le la procédure stockée [dbo].[M_UPDATES] appelle une autre procédure stockée etl.etl_M_Update_Promo avec deux arguments (@GenID et @Description):

EXEC etl.etl_M_Update_Promo @GenID, @Description

Cependant, la procédure stockée etl.etl_M_Update_Promo est déclarée pour ne prendre qu'un seul argument (@GenID):

ALTER PROCEDURE [etl].[etl_M_Update_Promo]
    @GenId bigint = 0
  1. Corrigez le Problème :

Pour résoudre l'erreur, modifiez la procédure stockée ou la définition de fonction pour qu'elle corresponde au numéro. d'arguments dans l'invocation. Dans ce cas, la déclaration de etl.etl_M_Update_Promo doit être mise à jour pour inclure le deuxième argument :

ALTER PROCEDURE [etl].[etl_M_Update_Promo]
    @GenId bigint = 0,
    @Description NVARCHAR(50)
AS 

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!

Déclaration:
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