Обсуждение: Arrays in pgsql

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

Arrays in pgsql

От
Martina Mostert
Дата:
Hallo,
I'm working on a plpgsql-function. I need an array of type integer. The
Programmer's Guide says 'PL/pgSQL variables can have any SQL datatype',
so I'd say there should also be arrays - or am I wrong?

Therefore I've got the following line in my code:

monthday integer[12];

But when running I always get 'ERROR:  parse error at or near "["'.

Any suggestions?

Martina

Re: Arrays in pgsql

От
"Gregory Wood"
Дата:
> I'm working on a plpgsql-function. I need an array of type integer. The
> Programmer's Guide says 'PL/pgSQL variables can have any SQL datatype',
> so I'd say there should also be arrays - or am I wrong?

You'd be wrong... arrays are *not* an SQL datatype. Arrays are a PostgreSQL
construct.

> monthday integer[12];

> Any suggestions?

The closest thing I can come up with is creating a simple table with an
integer array column as a template, then you can declare a variable with a
TYPE matching that table. For example:

CREATE TABLE int_array_table (int_array integer[12]);

Then you can say:

monthday int_array_table.int_array%TYPE

But to be honest, I haven't tried this, so I can't say if it works or not.

Greg


Re: Arrays in pgsql

От
Tom Lane
Дата:
Martina Mostert <martina_mostert@gmx.de> writes:
> Therefore I've got the following line in my code:
> monthday integer[12];
> But when running I always get 'ERROR:  parse error at or near "["'.

Update to PG 7.2.

            regards, tom lane

Re: Arrays in pgsql

От
Martina Mostert
Дата:
Thank you, I'll tell you if it works.

Gregory Wood wrote:
>
> > I'm working on a plpgsql-function. I need an array of type integer. The
> > Programmer's Guide says 'PL/pgSQL variables can have any SQL datatype',
> > so I'd say there should also be arrays - or am I wrong?
>
> You'd be wrong... arrays are *not* an SQL datatype. Arrays are a PostgreSQL
> construct.
>
> > monthday integer[12];
>
> > Any suggestions?
>
> The closest thing I can come up with is creating a simple table with an
> integer array column as a template, then you can declare a variable with a
> TYPE matching that table. For example:
>
> CREATE TABLE int_array_table (int_array integer[12]);
>
> Then you can say:
>
> monthday int_array_table.int_array%TYPE
>
> But to be honest, I haven't tried this, so I can't say if it works or not.
>
> Greg
>
> ---------------------------(end of broadcast)---------------------------
> TIP 2: you can get off all lists at once with the unregister command
>     (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)