Re: Calculation error

Поиск
Список
Период
Сортировка
От chestie
Тема Re: Calculation error
Дата
Msg-id 87el29gw6c.fsf@argus.net.au
обсуждение исходный текст
Ответ на Calculation error  (Wil Duis <Wil.Duis@asml.com>)
Ответы Re: Calculation error
Список pgsql-novice
Wil Duis <Wil.Duis@asml.com> writes:

> Hi:
> I am new to postgresql (more familiar with Oracle) and am facing an issue I don't understand.
> What I am trying to do is the following:

It seems I've have a similar problem to you.

> ERROR:  parser: parse error at or near "$1" at character 20

I kept getting this same error, heres what I was trying to do.

  it := select int4(extract(epoch from timestamp $1 -
           extract(epoch from timestamp $2));

This doesn't work for me, I get the same error message as you.
I'm very new to functions, I don't understand whats going
on, but I did manage to get it working using quote_literal,
but its very ugly.

create or replace function
 subts(timestamp,timestamp)
 returns int as
'
declare
    it int;
    ts1 alias for $1;
    ts2 alias for $2;
    qquery text;
    rec record;
begin
    qquery := ''select int4(extract(epoch from timestamp  ''
    || quote_literal(ts1)
    || ''  ) - extract(epoch from timestamp  ''
    || quote_literal(ts2)
    || '' ))'';

    FOR rec IN EXECUTE qquery LOOP
      it := rec.int4;
    END LOOP;
    return it;
end
'
language 'plpgsql' IMMUTABLE;

The loop is ugly, but I couldn't work out any other way to do it.

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

Предыдущее
От: Thiemo Kellner
Дата:
Сообщение: Updatable view does not work [oops, quite long!]
Следующее
От: Nabil Sayegh
Дата:
Сообщение: 7.2 -> 7.3 timespan, interval etc.