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

Reply via email to