Don't you need to declare "row"? like
    row record;
or
    row companies%ROWTYPE
But then again, that might not be the reason.
HTH,
Albert.
On Wed, Apr 18, 2001 at 04:09:47PM -0400, Bob Whitehouse wrote:
> I'm trying to create a function that loops through records returned from a
> query. This is what I came up with but it doesn't work. Can anyone tell me
> what I'm doing wrong?
>
> CREATE FUNCTION test_loop(INT4, VARCHAR)
>     RETURNS INT4
>     AS 'DECLARE
>         int_key ALIAS FOR $1;
>         var_test VARCHAR;
>
>     BEGIN
>         var_test := $2;
>         FOR row IN SELECT * FROM companies LOOP
>             UPDATE companies SET name = var_test;
>         END LOOP;
>         RETURN int_key;
>     END;'
> LANGUAGE 'plpgsql';
>
> Here's how I call the test loop and the error I get:
>
> db=# SELECT test_loop(1, 'testing');
> ERROR: parse error at or near ";"
> db=#
>
> Thanks
>
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 5: Have you checked our extensive FAQ?
>
> http://www.postgresql.org/users-lounge/docs/faq.html
>
>