Reputation:
Am new in PostgreSQL Database
help me to correct the following Function written in PostgreSQL
FUNCTION
CREATE OR REPLACE FUNCTION insertinvoie(integer,integer,integer,integer,smallint,character varying, timestamp without time zone,integer,integer,integer,character varying,money,real,money,real,integer,integer,timestamp without time zone,integer,money,real,money,money,real,money,real,money,real,money,character varying,money,boolean,character varying,timestamp without time zone,character varying,character varying,boolean,character varying,character varying,integer,character varying,smallint,integer,integer,smallint,integer)
RETURNS void AS
$BODY$
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($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$40,$41,$42,$43,$44,$45,$46);
$BODY$
LANGUAGE sql VOLATILE
COST 100;
ALTER FUNCTION insertinvoie(integer,integer,integer,integer,smallint,character varying, timestamp without time zone,integer,integer,integer,character varying,money,real,money,real,integer,integer,timestamp without time zone,integer,money,real,money,money,real,money,real,money,real,money,character varying,money,boolean,character varying,timestamp without time zone,character varying,character varying,boolean,character varying,character varying,integer,character varying,smallint,integer,integer,smallint,integer)
OWNER TO postgres;
Called Like this
SELECT insertinvoie(5, 7, 0, 12, 1, '22754'::character varying ,'2014-01-22'::date, 2679, 22754, 2679, 'A.K.G.MEMORIAL HOSPITAL, PARAPPANANGADI'::character varying , 936, 0, 0, 0.4, 213388, 1, '2014-01-22 04:37:12 PM'::date, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ''::character varying, 0, False, ''::character varying,'2014-01-22'::date, ''::character varying, ''::character varying, False, ''::character varying, ''::character varying, 1, ''::character varying , 1,0,1,1,1);
Error Getting
ERROR: function insertinvoie(integer, integer, integer, integer, integer, character varying, date, integer, integer, integer, character varying, integer, integer, integer, numeric, integer, integer, date, integer, integer, integer, integer, integer, integer, integer, integer, integer, integer, integer, character varying, integer, boolean, character varying, date, character varying, character varying, boolean, character varying, character varying, integer, character varying, integer, integer, integer, integer, integer) does not exist
LINE 1: SELECT insertinvoie(5, 7, 0, 12, 1, '22754'::character varyi...
^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
********** Error **********
ERROR: function insertinvoie(integer, integer, integer, integer, integer, character varying, date, integer, integer, integer, character varying, integer, integer, integer, numeric, integer, integer, date, integer, integer, integer, integer, integer, integer, integer, integer, integer, integer, integer, character varying, integer, boolean, character varying, date, character varying, character varying, boolean, character varying, character varying, integer, character varying, integer, integer, integer, integer, integer) does not exist
SQL state: 42883
Hint: No function matches the given name and argument types. You might need to add explicit type casts.
Character: 8
Upvotes: 2
Views: 2801
Reputation: 26
You must cast the literals of type MONEY when you call your function.
Or, you can single-quote those values if you prefer.
Upvotes: 1