Heim > Datenbank > MySQL-Tutorial > Warum erhalte ich die Fehlermeldung „FEHLER: Funktion ... existiert nicht' und wie kann ich die Typinkongruenz in meinem Funktionsaufruf beheben?

Warum erhalte ich die Fehlermeldung „FEHLER: Funktion ... existiert nicht' und wie kann ich die Typinkongruenz in meinem Funktionsaufruf beheben?

DDD
Freigeben: 2025-01-05 14:25:40
Original
561 Leute haben es durchsucht

Why am I getting the

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)
    Nach dem Login kopieren
  • 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)
    Nach dem Login kopieren

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!

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