When i tried that, i got the following error:

create or replace function fcn_max_dt(p_dt timestamp without time zone,
                                      p_dt2 timestamp without time zone)
returns timestamp without time zone as $$

  BEGIN
    v_dt := p_dt;
    v_dt2 := p_dt2;

    if v_dt >= v_dt2 then
    return v_dt;
    else
    return v_dt2;
    end if;

  END;
$$ LANGUAGE 'plpgsql';

ERROR:  syntax error at or near "v_dt" at character 1
QUERY:  v_dt :=  $1
CONTEXT:  SQL statement in PL/PgSQL function "fcn_max_dt" near line 3

********** Error **********

ERROR: syntax error at or near "v_dt"
SQL state: 42601
Context: SQL statement in PL/PgSQL function "fcn_max_dt" near line 3








On Tue, Sep 9, 2008 at 11:07 AM, Scott Marlowe <[EMAIL PROTECTED]>wrote:

> On Tue, Sep 9, 2008 at 11:55 AM, Ruben Gouveia <[EMAIL PROTECTED]>
> wrote:
> > Does this syntax look correct? Can anyone think of a better way to write
> > this?
> >
> > This function will accept two timestamp parameters and determine the
> highest
> > of the two?
> >
> > create or replace function fcn_max_dt(p_dt timestamp without time zone,
> >                                       p_dt2 timestamp without time zone)
> > returns timestamp without time zone as $$
> >   DECLARE
> >       v_dt timestamp without time zone;
> >       v_dt2 timestamp without time zone;
> >
> >   BEGIN
> >     v_dt := p_dt;
> >     v_dt2 := p_dt2;
> >
> >     if v_dt >= v_dt2 then
> >     return v_dt;
> >     else
> >     return v_dt2;
> >     end if;
> >
> >   END;
> > $$ LANGUAGE 'plpgsql';
>
> It certainly works, but there's no real need for the declarations.
> This works just as well:
>
> create or replace function fcn_max_dt(p_dt timestamp without time zone,
>                                      p_dt2 timestamp without time zone)
> returns timestamp without time zone as $$
>
>     BEGIN
>     if p_dt >= p_dt2 then
>    return p_dt;
>    else
>    return p_dt2;
>    end if;
>
>  END;
> $$ LANGUAGE 'plpgsql';
>

Reply via email to