Beachten Sie die folgende Fehlermeldung:
ERROR: function fnupdatesalegtab09(integer, integer, integer, integer, integer, unknown, unknown, integer, unknown, integer, unknown, integer, integer, integer, numeric, integer, integer, unknown, integer, integer, integer, integer, integer, integer, integer, integer, integer, integer, integer, unknown, integer, boolean, unknown, unknown, unknown, unknown, boolean, unknown, unknown, integer, unknown, integer, integer, integer, integer, integer) does not exist LINE 1: select FnUpdateSalegtab09 (4, 1, 0, 12, 1, '9','2014-07-15',... ^ HINT: No function matches the given name and argument types. You might need to add explicit type casts.
In diesem Szenario ein Versuch wurde erstellt, um eine Funktion namens FnUpdateSaletab09 mit bestimmten Parametern aufzurufen. Der Fehler weist jedoch darauf hin, dass die Funktion nicht vorhanden ist. Darüber hinaus deutet der Fehler darauf hin, dass es keine Funktion gibt, die mit dem angegebenen Namen und den angegebenen Argumenttypen übereinstimmt.
Der Fehler ist wahrscheinlich auf ein Umwandlungsproblem zurückzuführen. Beim Funktionsaufruf werden numerische Literale für Parameter verwendet, die in der Funktionsdefinition als smallint definiert sind. Bei numerischen Literalen wird zunächst davon ausgegangen, dass sie vom Typ Integer sind, wenn ihr Wert in den Typ Integer passt. Da keine explizite Typumwandlung bereitgestellt wird, kann dies zu einer Diskrepanz zwischen den erwarteten und tatsächlichen Argumenttypen führen.
Um dieses Problem zu beheben, fügen Sie den numerischen Literalen in explizite Typumwandlungen hinzu Der Funktionsaufruf muss dem erwarteten Smallint-Datentyp entsprechen. Alternativ können Sie im Funktionsaufruf zitierte (untypisierte) Literale verwenden.
Falscher Aufruf:
SELECT * FROM f_typetest(1);
Richtig Aufrufe:
SELECT * FROM f_typetest('1'); SELECT * FROM f_typetest(smallint '1'); SELECT * FROM f_typetest(1::int2); SELECT * FROM f_typetest('1'::int2);
Durch diese Anpassungen wird der Funktionsaufruf ausgeführt sollte nun ohne Fehler erkannt und ausgeführt werden.
Das obige ist der detaillierte Inhalt vonWarum schlägt mein SQL-Funktionsaufruf mit der Fehlermeldung „Funktion existiert nicht' fehl?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!