When i call the procedure below from a ecpg program i get
sql error too few arguments.. before and after executing the function..
can somebody help me??
thanks in advance
ranjani.
CREATE FUNCTION insert_zone_man(varchar,varchar,int4,int4) RETURNS int4
AS ' DECLAREtmp RECORD;p_ip ALIAS FOR $1; c_ip ALIAS FOR $2;sts ALIAS FOR $3;zm_flg ALIAS FOR $4; BEGIN IF p_ip
ISNOT NULL THEN SELECT INTO tmp ip_address FROM Node WHERE node.ip_address = ''p_ip'';
IF NOT FOUND THEN INSERT INTO Node VALUES(c_ip,sts,zm_flg); END IF;
END IF; RETURN 1; END;
' LANGUAGE 'plpgsql';
I am calling this function from test.pgc program as follows..
#include <stdio.h>
exec sql include sqlca;
exec sql whenever sqlerror sqlprint;
int
main ()
{
exec sql begin declare section;char command[500];
exec sql end declare section; char msg[128]; FILE *dbgs; int i,j;
if((dbgs = fopen("log", "w")) != NULL) ECPGdebug(1, dbgs);
strcpy(msg, "connect"); exec sql connect to distributed;
strcpy(msg, "calling function"); sprintf(command , "SELECT
insert_zone_man('10.0.0.1'::varchar,'10.0.0.112'::varchar,1::int,1::int)");
exec sql execute immediate :command;
strcpy(msg,"disconnect"); exec sql disconnect;
if(dbgs != NULL) fclose(dbgs);
return(0);
}