Обсуждение: creating names in plpgsql-functions

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

creating names in plpgsql-functions

От
Lieven Van Acker
Дата:
Hi,

is there a way to make a name in a plpgsql procedure dynamic? I want to
do something like this:

CREATE FUNCTION create_admin(BPCHAR)
RETURNS BPCHAR AS '
        DECLARE
                seqname name;
                a alias for $1;
        BEGIN
                insert into admin(adminid)
                values (a);

                seqname := a || ''_seq'';

                create sequence seqname;

                return seqname;
        END;'
LANGUAGE 'plpgsql';

Calling this function returns

SELECT create_admin('TS');
ERROR:  parser: parse error at or near "$1"

Thanks,

Lieven


Re: creating names in plpgsql-functions

От
Stephan Szabo
Дата:
Under 7.0.x and earlier, no.
Under 7.1, you can use execute to execute a string which
could have dynamic bits (replace create sequence seqname;
with execute ''create sequence '' || seqname;)


On Sat, 28 Apr 2001, Lieven Van Acker wrote:

> Hi,
>
> is there a way to make a name in a plpgsql procedure dynamic? I want to
> do something like this:
>
> CREATE FUNCTION create_admin(BPCHAR)
> RETURNS BPCHAR AS '
>         DECLARE
>                 seqname name;
>                 a alias for $1;
>         BEGIN
>                 insert into admin(adminid)
>                 values (a);
>
>                 seqname := a || ''_seq'';
>
>                 create sequence seqname;
>
>                 return seqname;
>         END;'
> LANGUAGE 'plpgsql';
>
> Calling this function returns
>
> SELECT create_admin('TS');
> ERROR:  parser: parse error at or near "$1"
>
> Thanks,
>
> Lieven
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 6: Have you searched our list archives?
>
> http://www.postgresql.org/search.mpl
>