ストアド プロシージャ呼び出しのパラメータが多すぎます
エラー メッセージ「指定されたプロシージャまたは関数 xxx の引数が多すぎます」は、数値間の不一致を示しますストアド プロシージャの呼び出しで指定されたパラメータの数と、ストアド プロシージャの定義で宣言されたパラメータの数。
Inこの特定のケースでは、ストアド プロシージャ "[dbo].[M_UPDATES]" を呼び出しており、このストアド プロシージャが別のストアド プロシージャ "[etl_M_Update_Promo]" を呼び出しています。このエラーは、「[etl_M_Update_Promo]」が @GenId パラメーターを 1 つだけ受け入れるように宣言されているにもかかわらず、「[dbo].[M_UPDATES]」からの呼び出しで 2 つのパラメーター (@GenID と @Description) を渡しているために発生します。
不一致パラメータの特定
正確な不一致を特定するには、ストアド プロシージャ "[etl_M_Update_Promo]" の宣言を調べます:
この宣言は、プロシージャが 1 つのパラメータ @GenId を取ることを指定します。これは bigint データ型であり、デフォルト値は 0 です。 "[dbo].[M_UPDATES]" からの呼び出しでは、2 つのパラメーターを渡していますが、2 番目のパラメーター (@Description) がプロシージャ定義で宣言されていないため、エラー。
パラメータ リストの調整
エラーを解決するには、「[etl_M_Update_Promo]」の宣言を変更して 2 番目のパラメータを含める必要があります:
プロシージャ宣言の追加パラメータとして @Description を指定することで、呼び出し時に正当に渡すことができるようになりました「[etl_M_Update_Promo]」「[dbo].[M_UPDATES]」から。
以上が「指定された引数が多すぎます」という理由でストアド プロシージャの呼び出しが失敗するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。