ホームページ >データベース >mysql チュートリアル >「プロシージャまたは関数 !!! に指定された引数が多すぎます」エラーが表示されるのはなぜですか?

「プロシージャまたは関数 !!! に指定された引数が多すぎます」エラーが表示されるのはなぜですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-21 05:05:15179ブラウズ

Why Am I Getting the

過剰な引数を持つプロシージャまたは関数

エラー メッセージ「プロシージャまたは関数 !!! 指定された引数が多すぎます」は、格納されているプロシージャまたは関数が間違った数の引数で呼び出されました。この問題を診断して解決するには、次の手順に従います。

  1. ストアド プロシージャまたは関数を特定します。 エラー メッセージには、問題のあるストアド プロシージャまたは関数の名前が示されます。
  2. 関数宣言を確認してください: データベース内のストアド プロシージャまたは関数の定義を確認して、予想される数を確認してください。
  3. 予期される引数と提供された引数を比較する: ストアド プロシージャまたは関数の呼び出しには、宣言で指定されたデータ型と一致する正しい数の引数が含まれている必要があります。予想より多くの引数が指定されている場合、このエラーが発生します。
  4. 例: ストアド プロシージャ呼び出しの過剰な引数

この例では、ストアド プロシージャ [dbo].[M_UPDATES] は、2 つの引数 (@GenID および@Description):

EXEC etl.etl_M_Update_Promo @GenID, @Description

ただし、ストアド プロシージャ etl.etl_M_Update_Promo は 1 つの引数 (@GenID) のみを取るように宣言されています:

ALTER PROCEDURE [etl].[etl_M_Update_Promo]
    @GenId bigint = 0
  1. 問題:

エラーを解決するには、次のように変更します。呼び出し時の引数の数と一致するストアド プロシージャまたは関数の定義。この場合、etl.etl_M_Update_Promo の宣言を更新して 2 番目の引数を含める必要があります:

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

以上が「プロシージャまたは関数 !!! に指定された引数が多すぎます」エラーが表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。