Prozedur oder Funktion hat zu viele Argumente: Identifizieren und Lösen des Problems
Beim Ausführen einer gespeicherten Prozedur, die eine andere gespeicherte Prozedur aufruft, kann es sein, dass Sie Es kommt der Fehler „Prozedur oder Funktion [Name] hat zu viele Argumente angegeben.“ Dieser Fehler weist darauf hin, dass die aufrufende Prozedur versucht, zu viele Argumente an die aufgerufene Prozedur zu übergeben.
Verstehen der Fehlermeldung
Die Fehlermeldung gibt an, dass es sich um eine bestimmte gespeicherte Prozedur handelt oder der Funktion, in diesem Fall „etl_M_Update_Promo“, wurden mehr Argumente bereitgestellt, als sie verarbeiten kann. Dies bedeutet, dass der Code, der die Prozedur aufruft, versucht, mehr Parameter an ihn zu senden, als die Prozedur empfangen soll.
Identifizieren der übermäßigen Argumente
Um die übermäßigen Argumente zu ermitteln Argumente vergleichen die Anzahl der Parameter, die im aufrufenden Code an die Prozedur übergeben werden, mit der Anzahl, die in der Definition der aufgerufenen Prozedur deklariert ist. In diesem Fall rufen Sie „etl_M_Update_Promo“ mit zwei Parametern („@GenID“ und „@Description“) auf, während die Prozedur nur einen deklarierten Parameter („@GenId“) hat.
Auflösung das Problem
Die Lösung besteht darin, den aufrufenden Code so zu ändern, dass er mit der Parameterliste der Prozedur übereinstimmt. Bei Bedarf kann auch die Prozedurdefinition geändert werden. So lösen Sie das Problem in diesem speziellen Fall:
Ändern Sie den Aufrufcode: Passen Sie den Code an, der „etl_M_Update_Promo“ aufruft, um nur den erforderlichen Parameter bereitzustellen: „ @GenID."
EXEC etl.etl_M_Update_Promo @GenID
Ändern Sie das Verfahren Definition: Alternativ können Sie die Definition von „etl_M_Update_Promo“ ändern, um zwei Parameter zu akzeptieren, indem Sie die folgende Zeile hinzufügen:
@Description NVARCHAR(50)
Revised Procedure Definition:
ALTER PROCEDURE [etl].[etl_M_Update_Promo] @GenId bigint = 0, @Description NVARCHAR(50) AS .... Rest of your code.
Das obige ist der detaillierte Inhalt vonWarum erhält meine gespeicherte Prozedur den Fehler „Prozedur oder Funktion hat zu viele Argumente'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!