Heim >Datenbank >MySQL-Tutorial >Warum schlägt mein Aufruf einer gespeicherten Prozedur mit „Zu viele Argumente angegeben' fehl?
Zu viele Parameter im Stored Procedure Call
Die Fehlermeldung „Prozedur oder Funktion xxx zu viele Argumente angegeben“ weist auf eine Nichtübereinstimmung zwischen der Zahl hin der in einem Aufruf einer gespeicherten Prozedur angegebenen Parameter und die Anzahl der in der Definition der gespeicherten Prozedur deklarierten Parameter.
In diesem speziellen Fall rufen Sie die gespeicherte Prozedur auf „[dbo].[M_UPDATES]“, was wiederum eine andere gespeicherte Prozedur „[etl_M_Update_Promo]“ aufruft. Der Fehler tritt auf, weil „[etl_M_Update_Promo]“ so deklariert ist, dass es nur einen Parameter @GenId akzeptiert, Sie ihm jedoch zwei Parameter (@GenID und @Description) im Aufruf von „[dbo].[M_UPDATES]“ übergeben.
Identifizieren der nicht übereinstimmenden Parameter
Um die genaue Nichtübereinstimmung zu identifizieren, überprüfen Sie die Deklaration der gespeicherten Prozedur „[etl_M_Update_Promo]“:
ALTER PROCEDURE [etl].[etl_M_Update_Promo] @GenId bigint = 0 as
Diese Deklaration gibt an, dass die Prozedur einen Parameter, @GenId, annimmt, der ein Bigint-Datentyp ist und den Standardwert 0 hat. In Ihrem Aufruf von „[dbo] .[M_UPDATES]“, Sie übergeben zwei Parameter, aber der zweite Parameter (@Description) ist nicht in der Prozedurdefinition deklariert und verursacht daher das Fehler.
Anpassen der Parameterliste
Um den Fehler zu beheben, müssen Sie die Deklaration von „[etl_M_Update_Promo]“ ändern, um den zweiten Parameter einzuschließen:
ALTER PROCEDURE [etl].[etl_M_Update_Promo] @GenId bigint = 0, @Description NVARCHAR(50) AS .... Rest of your code.
Durch die Angabe von @Description als zusätzlichen Parameter in der Prozedurdeklaration können Sie es nun beim Aufruf legal übergeben „[etl_M_Update_Promo]“ von „[dbo].[M_UPDATES]“.
Das obige ist der detaillierte Inhalt vonWarum schlägt mein Aufruf einer gespeicherten Prozedur mit „Zu viele Argumente angegeben' fehl?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!