Heim > Datenbank > MySQL-Tutorial > Warum erhält meine gespeicherte Prozedur den Fehler „Zu viele Argumente angegeben'?

Warum erhält meine gespeicherte Prozedur den Fehler „Zu viele Argumente angegeben'?

DDD
Freigeben: 2024-12-26 03:18:15
Original
635 Leute haben es durchsucht

Why Does My Stored Procedure Get a

Zu viele Argumente in gespeicherten Prozeduren angegeben

Problem:

Beim Ausführen einer gespeicherten Prozedur Wenn Sie eine andere gespeicherte Prozedur aufrufen, wird möglicherweise die Fehlermeldung „Für die Prozedur oder Funktion wurden zu viele Argumente angegeben“ angezeigt. Dieser Fehler weist auf eine Diskrepanz zwischen der Anzahl der an die aufgerufene Prozedur übergebenen Argumente und der Anzahl der Argumente hin, die sie akzeptieren soll.

Identifizierung:

Zur Identifizierung des Fehlers Argumente, untersuchen Sie die in der Definition der aufgerufenen Prozedur deklarierten Parameter. Vergleichen Sie diese Parameter mit den Argumenten, die von der aufrufenden Prozedur übergeben wurden. Durch die Nichtübereinstimmung wird ermittelt, wo sich die überschüssigen Argumente befinden.

Analyse des bereitgestellten Codes:

Im angegebenen Codeausschnitt tritt der Fehler auf, weil Sie die gespeicherte Prozedur aufrufen [ etl_M_Update_Promo] mit zwei Argumenten:

EXEC etl.etl_M_Update_Promo @GenID, @Description
Nach dem Login kopieren

Allerdings ist die Definition von [etl_M_Update_Promo] deklariert nur ein Argument:

ALTER PROCEDURE [etl].[etl_M_Update_Promo]
    @GenId bigint = 0
Nach dem Login kopieren

Daher gibt SQL Server die Fehlermeldung aus, die darauf hinweist, dass die aufgerufene Prozedur ein Argument erwartet, während ihr zwei Argumente übergeben werden.

Lösung:

Um das Problem zu beheben, richten Sie die Anzahl der an die aufgerufene Prozedur übergebenen Argumente an deren Anzahl aus erwartet. In diesem Fall haben Sie zwei Möglichkeiten:

  1. Entfernen Sie das Überschussargument:
    Ändern Sie den Code in [dbo].[M_UPDATES], um das zweite zu entfernen Argument:

    EXEC etl.etl_M_Update_Promo @GenID
    Nach dem Login kopieren
  2. Fügen Sie das Fehlende hinzu Parameter:
    Ändern Sie die Definition von [etl_M_Update_Promo], um den zweiten Parameter einzuschließen:

    ALTER PROCEDURE [etl].[etl_M_Update_Promo]
        @GenId bigint = 0,
        @Description NVARCHAR(50)
    AS 
    
    .... Rest of the code.
    Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWarum erhält meine gespeicherte Prozedur den Fehler „Zu viele Argumente angegeben'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage