Re: Function syntax ?

Поиск
Список
Период
Сортировка
От Scott Marlowe
Тема Re: Function syntax ?
Дата
Msg-id dcc563d10809091115j18f98e92g573fd403de255e80@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Function syntax ?  ("Ruben Gouveia" <rubes7202@gmail.com>)
Список pgsql-sql
That's not what I copied and pasted in.  Leave out the  v_dt := p_dt;
>     v_dt2 := p_dt2;
lines and turn the v into p in the rest of the function.


On Tue, Sep 9, 2008 at 12:11 PM, Ruben Gouveia <rubes7202@gmail.com> wrote:
> 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 <scott.marlowe@gmail.com>
> wrote:
>>
>> On Tue, Sep 9, 2008 at 11:55 AM, Ruben Gouveia <rubes7202@gmail.com>
>> 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';
>
>


В списке pgsql-sql по дате отправления:

Предыдущее
От: "Pavel Stehule"
Дата:
Сообщение: Re: Function syntax ?
Следующее
От: Richard Huxton
Дата:
Сообщение: Re: Function syntax ?