Keine Funktion entspricht dem angegebenen Namen und den Argumenttypen
Meine Funktion ist:
CREATE OR REPLACE FUNCTION FnUpdateSalegtab09
(
iacyrid Integer,iRepId Integer,iDrId Integer,ivrid Integer,imode smallint,itrno
varchar,itrdate timestamp,iacid Integer,ivrno varchar,iSuppId Integer,icustname
varchar,inetamt money,idisrate real,idisamt money,iRoundOff real,ijrmid integer,iuserid
integer,iuserdtm timestamp,iVSNo integer,iRecdAmt money,icstrate real,icstsaleamt
money,icstamt money,itdrate real,itdamt money,icdrate real,icdamt money,iCessRate
real,iCessAmt money,iodesc1 varchar,ioamt1 money,iCashCredit boolean,iOrderNo
varchar,iOrderDate timestamp,iCustAdd2 varchar,iRemarks varchar,iWhoRetSl boolean,iPatName
varchar,iDrName varchar,iFormId integer,iSalesMan varchar,iCFMode smallint,iPatId
integer,iStkPtId integer,iDisType smallint,iBranchID integer
)
RETURNS void AS
'BEGIN
INSERT INTO gtab09
(
acyrid, RepId, DrId, vrid, mode, trno, trdate, acid, vrno, SuppId, custname, netamt,
disrate, disamt, RoundOff, jrmid, userid, userdtm, VSNo, RecdAmt, cstrate, cstsaleamt,
cstamt, tdrate, tdamt, cdrate, cdamt, CessRate, CessAmt, odesc1, oamt1, CashCredit,
OrderNo, OrderDate, CustAdd2, Remarks, WhoRetSl, PatName, DrName, FormId, SalesMan,
CFMode,PatId,StkPtId,DisType,BranchID
)
values
( iacyrid,iRepId,iDrId,ivrid,imode,itrno,itrdate,iacid,ivrno,iSuppId,icustname,inetamt,idisra
te,idisamt,iRoundOff,ijrmid,iuserid,iuserdtm,iVSNo,iRecdAmt,icstrate,icstsaleamt,icstamt,it
drate,itdamt,icdrate,icdamt,iCessRate,iCessAmt,iodesc1,ioamt1,iCashCredit,iOrderNo,iOrderDa
te,iCustAdd2,iRemarks,iWhoRetSl,iPatName,iDrName,iFormId,iSalesMan,iCFMode,iPatId,iStkPtId,
iDisType,iBranchID);
END;'
LANGUAGE plpgsql VOLATILE
COST 100;
Und ich verwendet, um dieses, nennen wie:
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)
Der Fehler ist:
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. ********** Error **********
Und was ist der Fehler???
Dies ist fast völlig unintellibgible, und scheint einfach zu sein einen posten von code. Was ist das problem? Fehlermeldungen? Versuchen Sie Beschreibung. (-1 und closevoted "unklar ist, was Sie Fragen" - Sie habe schon SO genug zu wissen es besser).
Die Frage war, präsentierte schlecht auf den ersten, aber die OP in einigen Aufwand setzen, um es zu verbessern. Und es stellt ein sehr Interessantes problem. So, die ersten downvotes sind unbegründet, jetzt würde ich sagen.
Dies ist fast völlig unintellibgible, und scheint einfach zu sein einen posten von code. Was ist das problem? Fehlermeldungen? Versuchen Sie Beschreibung. (-1 und closevoted "unklar ist, was Sie Fragen" - Sie habe schon SO genug zu wissen es besser).
Die Frage war, präsentierte schlecht auf den ersten, aber die OP in einigen Aufwand setzen, um es zu verbessern. Und es stellt ein sehr Interessantes problem. So, die ersten downvotes sind unbegründet, jetzt würde ich sagen.
InformationsquelleAutor Vivek S. | 2014-07-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihre Funktion hat ein paar
smallint
Parameter.Aber in den Ruf, Sie sind mit numerischen literalen, die die Vermutung der Typ
integer
.Einem string-literal oder string-Konstante (
'123'
) nicht typisiert sofort. Es bleibt Typ "unbekannt", bis zugewiesen oder cast explizit.Jedoch, ein numerisches literal oder numerische Konstante eingegeben wird, sofort. Pro Dokumentation:
Mehr Erklärung und die links, die in diesem Zusammenhang zu beantworten:
Lösung
Hinzufügen von expliziten casts für die
smallint
Parameter oder zitieren.Demo
Falschen Aufruf:
Korrekten Aufrufe:
SQL Fiddle.
InformationsquelleAutor Erwin Brandstetter
Dieser Fehler bedeutet, dass eine Funktion aufgerufen wird nur abgestimmt, indem Sie eine existierende Funktion, wenn alle Argumente vom selben Typ und ging in der gleichen Reihenfolge. Also, wenn das nächste
f()
Funktionheißt
Es wird ein Fehler ausgegeben, der mit
weil es keine
f()
Funktion, die einen integer als argument.So müssen Sie sorgfältig vergleichen, was Sie übergeben, um die Funktion zu dem, was es erwartet. Diese lange Liste von Spalten der Tabelle sieht aus wie schlechtes design.
InformationsquelleAutor Clodoaldo Neto
In meinem speziellen Fall wurde die Funktion tatsächlich fehlt. Die Fehlermeldung ist die gleiche. Ich bin mit dem Postgresql-plugin PostGIS und ich musste neu installieren, warum auch immer.
InformationsquelleAutor n1000