Den Fehler verstehen: „FEHLER: Funktion ... existiert nicht und TIPP: Keine Funktion entspricht dem angegebenen Namen und den angegebenen Argumenttypen“
Beim Versuch, eine Funktion auszuführen, ist es wichtig sicherzustellen, dass der angegebene Funktionsname und die Argumenttypen mit der tatsächlichen Funktionsdefinition übereinstimmen. Wenn eine Nichtübereinstimmung vorliegt, wird wahrscheinlich der Fehler „FEHLER: Funktion ... existiert nicht und TIPP: Keine Funktion entspricht dem angegebenen Namen und den Argumenttypen“ angezeigt.
Lösung: Argumenttypen untersuchen
In diesem speziellen Szenario hängt der Fehler mit einer Typinkongruenz für die „smallint“-Parameter in Ihrer Funktionsdefinition zusammen. Im Funktionsaufruf verwenden Sie jedoch numerische Literale, von denen angenommen wird, dass sie vom Typ „Ganzzahl“ sind.
Numerische Literale verstehen
Ein Zeichenfolgenliteral (wie „123“) ist zunächst untypisiert und bleibt so, bis sein Wert zugewiesen oder explizit umgewandelt wird. Numerische Literale (wie 123) werden jedoch sofort als „Ganzzahl“ eingegeben, wenn sie in den zulässigen Bereich passen, und als „bigint“ oder „numerisch“, wenn sie diesen Bereich überschreiten.
Auflösen der Nichtübereinstimmung
Um das Problem zu lösen, haben Sie zwei Optionen:
Explizite Umwandlungen hinzufügen:Explizite Umwandlungen für die „smallint“-Parameter im Funktionsaufruf hinzufügen:
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)
Untypisierte Literale übergeben: Übergeben Sie zitierte (untypisierte) Literale für „smallint“ Parameter:
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)
Das obige ist der detaillierte Inhalt vonWarum erhalte ich die Fehlermeldung „FEHLER: Funktion ... existiert nicht' und wie kann ich die Typinkongruenz in meinem Funktionsaufruf beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!