Skip site navigation (1) Skip section navigation (2)

Re: Why this does not work ??

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Roberto Rezende de Assis <rezende_assis(at)yahoo(dot)com(dot)br>
Cc: Postgesql list <pgsql-novice(at)postgresql(dot)org>
Subject: Re: Why this does not work ??
Date: 2004-07-03 21:56:45
Message-ID: 23473.1088891805@sss.pgh.pa.us (view raw or flat)
Thread:
Lists: pgsql-novice
Roberto Rezende de Assis <rezende_assis(at)yahoo(dot)com(dot)br> writes:
> Hello all, why this does not work ?

> create function copiar()
>     returns int as '
>     declare
>         ponteiro int;
>     begin
>         for ponteiro in select * from original order by num asc loop
>             insert into copia(num) values(ponteiro);

The loop variable of a for/select loop has to be a record or rowtype
variable.  So you should do something like

    declare
        r record;
    begin
        for r in select * from original order by num asc loop
            insert into copia(num) values(r.num);

> WARNING:  plpgsql: ERROR during compile of copiar near line 4
> ERROR:  missing .. at end of SQL expression

I agree that this error message is not very helpful :-(

			regards, tom lane

In response to

Responses

pgsql-novice by date

Next:From: Tom LaneDate: 2004-07-04 03:07:11
Subject: Re: Why this does not work ??
Previous:From: Roberto Rezende de AssisDate: 2004-07-03 19:08:29
Subject: Re: Why this does not work ?? (Now it has worked)

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group