ホームページ > データベース > mysql チュートリアル > 「指定された引数が多すぎます」という理由でストアド プロシージャの呼び出しが失敗するのはなぜですか?

「指定された引数が多すぎます」という理由でストアド プロシージャの呼び出しが失敗するのはなぜですか?

Linda Hamilton
リリース: 2024-12-27 08:06:09
オリジナル
367 人が閲覧しました

Why Does My Stored Procedure Call Fail with

ストアド プロシージャ呼び出しのパラメータが多すぎます

エラー メッセージ「指定されたプロシージャまたは関数 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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート