Heim >Datenbank >MySQL-Tutorial >Warum schlägt mein SQL-Funktionsaufruf mit „Funktion ... existiert nicht' fehl und wie kann ich das Problem beheben?
Im bereitgestellten Code wird ein Versuch unternommen um die Funktion FnUpdateSaletab09 aufzurufen. Es ist jedoch ein Fehler aufgetreten, der darauf hinweist, dass die Funktion nicht existiert oder ihre Argumenttypen nicht mit den erwarteten übereinstimmen.
Die Fehlermeldung deutet darauf hin, dass der Funktionsname oder die Argumenttypen möglicherweise falsch sind. Lassen Sie uns die möglichen Ursachen untersuchen.
Die Funktionssignatur für FnUpdateSalegtab09 gibt an, dass mehrere seiner Parameter vom Typ smallint sind. Beim Funktionsaufruf werden diese Parameter jedoch als numerische Literale übergeben, von denen zunächst angenommen wird, dass sie vom Typ Ganzzahl sind.
Diese Nichtübereinstimmung zwischen dem erwarteten und dem tatsächlichen Typ der Argumente kann zu dem Fehler führen.
Um dieses Problem zu beheben, müssen Sie die numerischen Literale explizit in den richtigen Typ, smallint, umwandeln, bevor Sie sie an die Funktion übergeben. Sie können dies erreichen, indem Sie jedem Literal einen Typumwandlungsoperator (::) hinzufügen, wie unten gezeigt:
select FnUpdateSalegtab09( 4, 1, 0, 12, 1, '9'::varchar, '2014-07-15'::timestamp, 4048, '9'::varchar, 4048, 'MYCUSTOMER'::varchar, 12::money, 0, 0::money, 0.32, 185, 0, '2014-07-15 11:24:12 AM'::timestamp, 0, 0::money, 0, 0::money, 0::money, 0, 0::money, 0, 0::money, 0, 0::money, ''::varchar, 0::money, False, ''::varchar, '2014-07-15'::timestamp, ''::varchar, ''::varchar, False, ''::varchar, ''::varchar, 1, ''::varchar, 1, 0, 1, 0, 42 );
Durch das Hinzufügen der expliziten Typumwandlungen stellen Sie sicher, dass die Argumenttypen den Erwartungen der Funktion entsprechen Definition, und der Funktionsaufruf sollte jetzt ohne den Fehler „Funktion ... existiert nicht“ ausgeführt werden.
Das obige ist der detaillierte Inhalt vonWarum schlägt mein SQL-Funktionsaufruf mit „Funktion ... existiert nicht' fehl und wie kann ich das Problem beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!