Try using EXECUTE.
http://www.postgresql.org/docs/7.4/static/plpgsql- statements.html#PLPGSQL-STATEMENTS-EXECUTING-DYN
-tfo
-- Thomas F. O'Connell Co-Founder, Information Architect Sitening, LLC http://www.sitening.com/ 110 30th Avenue North, Suite 6 Nashville, TN 37203-6320 615-260-0005
On Oct 26, 2004, at 11:57 AM, Naeem Bari wrote:
I have a simple function defined thusly:
CREATE OR REPLACE FUNCTION datemath(timestamp with time zone, int4, varchar)
RETURNS timestamp AS
'
DECLARE
tdat timestamp;
rdat timestamp;
BEGIN
IF ($1 IS NULL) THEN
TDAT := NOW();
ELSE
TDAT := $1;
END IF;
select tdat + interval ''$2 $3'' into rdat;
return rdat;
END;
'
LANGUAGE 'plpgsql' VOLATILE;
The problem is the interval part. How do I tell the bugger to use the second and third params as input to interval? I have tried different ways of escaping, from \’$2 $3\’ to ‘’$2 $3’’ and everything else in between, it just doesn’t like it.
Help! J
Thanks,
naeem
---------------------------(end of broadcast)--------------------------- TIP 8: explain analyze is your friend