Обсуждение: parse error when calling function in plpgsql

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

parse error when calling function in plpgsql

От
"David Witham"
Дата:
I have a function that returns a record that works fine when I call it from psql:

mydb=# select * from myfunc(...params...) as (col1 real,col2 integer);   col1 | col2
---------+----------
0.806667 | 17000104
(1 row)

I have tried to call it from within another function like this:

...
declaremyrec record;
...
select * into myrec from myfunc(...params...) as (col1 real,col2 integer);
...

but I keep getting a parse error:

WARNING:  Error occurred while executing PL/pgSQL function myparentfunc
WARNING:  line 27 at select into variables
ERROR:  parser: parse error at or near "$1" at character 72

How do I get the record returned from myfunc to be assigned to myrec?

Thanks,
David Witham


Re: parse error when calling function in plpgsql

От
Tom Lane
Дата:
"David Witham" <davidw@unidial.com.au> writes:
>     myrec record;
> ...
> select * into myrec from myfunc(...params...) as (col1 real,col2 integer);

> but I keep getting a parse error:

> WARNING:  Error occurred while executing PL/pgSQL function myparentfunc
> WARNING:  line 27 at select into variables
> ERROR:  parser: parse error at or near "$1" at character 72

I doubt this has anything to do with the function per se.  I'd check for
a conflict between the names you are using as plpgsql variables and the
names mentioned in this SELECT.
        regards, tom lane