Обсуждение: Problem with function invocation

Поиск
Список
Период
Сортировка

Problem with function invocation

От
DaVinci
Дата:
 Hello.

 When I create next function:

     create function pilpot() returns integer as '
        declare
            foo integer;
        begin
            foo = insert into aviso(user) values(1);
            return foo;
        end;
    ' language 'plpgsql';

 And try to invoque with:

     # select pilpot();

 I get next error:

     ERROR: parser: parse error at or near "("

 Where is the problem with this?

 Thanks a lot.

                                 David

Re: Problem with function invocation

От
Tom Lane
Дата:
DaVinci <bombadil@wanadoo.es> writes:
>             foo = insert into aviso(user) values(1);

INSERT doesn't return a value AFAIK ...

            regards, tom lane

Re: Problem with function invocation

От
Stephan Szabo
Дата:
On Mon, 16 Apr 2001, DaVinci wrote:

>  Hello.
>
>  When I create next function:
>
>      create function pilpot() returns integer as '
>         declare
>             foo integer;
>         begin
>             foo = insert into aviso(user) values(1);
>             return foo;
>         end;
>     ' language 'plpgsql';
>

What exactly are you trying to return from the function?
Removing the foo declaration and foo = from the insert line
(and double quoting the reserved word user) on 7.1 makes
the function work for me (I just returned 1).


Re: Problem with function invocation

От
will trillich
Дата:
On Mon, Apr 16, 2001 at 03:43:23PM +0200, DaVinci wrote:
>  Hello.
>
>  When I create next function:
>
>      create function pilpot() returns integer as '
>         declare
>             foo integer;
>         begin
>             foo = insert into aviso(user) values(1);
>             return foo;
>         end;
>     ' language 'plpgsql';

don't assignments have to be pascal-style, with a colon?

    var := expression + some / value ;

and then, doesn't the rhs (right-hand side) have to return a
value? i don't think insert does return anything pertinent
(except in psql where you can see the oid and the 'record count'
[or is it more like an 'activity count'?]).  <== do i get a prize
for the most-consecutive punctuation within an english-text
paragraph? :)

--
don't visit this page. it's bad for you. take my expert word for it.
http://www.salon.com/people/col/pagl/2001/03/21/spring/index1.html

will@serensoft.com
http://sourceforge.net/projects/newbiedoc -- we need your brain!
http://www.dontUthink.com/ -- your brain needs us!