Thread: Array dimension as integer

Array dimension as integer

From
"Victor Yegorov"
Date:
Hello.

I'm using:

 PostgreSQL 7.3.2 on i686-pc-linux-gnu, compiled by GCC 2.95.3

and I'd like to have a function, which would receive array of varchars and then
create and EXECUTE insert statement for each of array elements (array has 1
dimension):

FOR i IN 1..array_length_function($1) LOOP
    EXECUTE ...;
END LOOP;

I've tried to use array_dims, but it gives data in string format:

select test_array('{\'a\'}');
WARNING:  Error occurred while executing PL/pgSQL function test_array
WARNING:  line 8 at select into variables
ERROR:  pg_atoi: error in "[1:1]": can't parse "[1:1]"

I've attached test_array source.

--

Victor Yegorov

Attachment

Re: Array dimension as integer

From
Achilleus Mantzios
Date:
On Thu, 8 May 2003, Victor Yegorov wrote:

> Hello.
> 
> I'm using:
> 
>  PostgreSQL 7.3.2 on i686-pc-linux-gnu, compiled by GCC 2.95.3
>  
> and I'd like to have a function, which would receive array of varchars and then
> create and EXECUTE insert statement for each of array elements (array has 1
> dimension):
> 
> FOR i IN 1..array_length_function($1) LOOP
>     EXECUTE ...;
> END LOOP;
> 
> I've tried to use array_dims, but it gives data in string format:
> 
> select test_array('{\'a\'}');
> WARNING:  Error occurred while executing PL/pgSQL function test_array
> WARNING:  line 8 at select into variables
> ERROR:  pg_atoi: error in "[1:1]": can't parse "[1:1]"

use something like 
substr(array_dims(yourTable.yourArrayColumn),4,1)::int
to get the dim in [1xN] arrays
> 
> I've attached test_array source.
> 
> 

-- 
==================================================================
Achilleus Mantzios
S/W Engineer
IT dept
Dynacom Tankers Mngmt
Nikis 4, Glyfada
Athens 16610
Greece
tel:    +30-210-8981112
fax:    +30-210-8981877
email:  achill@matrix.gatewaynet.com       mantzios@softlab.ece.ntua.gr