Prozedur oder Funktion hat zu viele Argumente angegeben
Wenn diese Fehlermeldung auftritt, weist dies darauf hin, dass währenddessen zu viele Argumente angegeben wurden der Aufruf einer gespeicherten Prozedur oder Funktion. Die Identifizierung der Fehlerquelle kann für die Lösung des Problems von entscheidender Bedeutung sein.
Identifizierung der Fehlerquelle
Im gegebenen Szenario tritt der Fehler beim Aufrufen des Speichers auf Prozedur [dbo].[M_UPDATES], die wiederum eine andere gespeicherte Prozedur aufruft, [etl_M_Update_Promo]. Bei der Untersuchung ist offensichtlich, dass [dbo].[M_UPDATES] versucht, [etl_M_Update_Promo] mit zwei Parametern aufzurufen, während die Deklaration von [etl_M_Update_Promo] nur einen Parameter angibt.
Code für [dbo] .[M_UPDATES]
EXEC etl.etl_M_Update_Promo @GenID, @Description
Code für [etl_M_Update_Promo]
ALTER PROCEDURE [etl].[etl_M_Update_Promo] @GenId bigint = 0 as
Wie Sie sehen können, ist [etl_M_Update_Promo] so deklariert, dass es nur den @GenId-Parameter akzeptiert, was zur Fehlermeldung führt.
Auflösung
Um dieses Problem zu beheben, ist es notwendig, die Erklärung von zu ändern [etl_M_Update_Promo], um den zusätzlichen Parameter @Description einzuschließen. Auf diese Weise kann die Funktion die beiden von [dbo].[M_UPDATES] bereitgestellten Parameter berücksichtigen.
Aktualisierter Code für [etl_M_Update_Promo]
ALTER PROCEDURE [etl].[etl_M_Update_Promo] @GenId bigint = 0, @Description NVARCHAR(50) AS
Nach der Aktualisierung der Deklaration sollte der Fehler behoben sein und das Verfahren wie vorgesehen funktionieren.
Das obige ist der detaillierte Inhalt vonWarum erhält meine gespeicherte Prozedur den Fehler „Zu viele Argumente'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!