Thread: plpgsql and escape

plpgsql and escape

From
darthxiong@libero.it
Date:
hi all!
i'm trying to do this ( converting unix time to human readable time in another table )

create function align_vs() returns opaque as
'
        declare
                line_vs vs%ROWTYPE;
                itime vs.step_time%TYPE;
        begin

        itime := to_char( timestamp ''epoch'' + interval ''NEW.step_time seconds'', ''YYYY-MM-DD HH24:MI:SS'' );
        update vs set w_id = NEW.w_id, step_id = %NEW.step_id, step_time = itime where w_id = NEW.w_id;

        return null;
end;
' language plpgsql;

the double ' around NEW.step_time blocks its interpolation. which is the correct escaping sintax here?

TIA
Ivan

--
There is no such thing as a problem without a gift for you in its hands.

Re: plpgsql and escape

From
Richard Huxton
Date:
On Monday 21 Oct 2002 3:00 pm, darthxiong@libero.it wrote:
> hi all!
> i'm trying to do this ( converting unix time to human readable time in
> another table )
>
> create function align_vs() returns opaque as
> '
>         declare
>                 line_vs vs%ROWTYPE;
>                 itime vs.step_time%TYPE;
>         begin
>
>         itime := to_char( timestamp ''epoch'' + interval ''NEW.step_time
> seconds'', ''YYYY-MM-DD HH24:MI:SS'' ); update vs set w_id = NEW.w_id,

> the double ' around NEW.step_time blocks its interpolation. which is the
> correct escaping sintax here?

Try (NEW.step_time || '' seconds'') - that should do it. If not, try casting
step_time to text first.

--
  Richard Huxton