El día 1 de abril de 2009 4:29, Conxita Marín <cma...@dims.com> escribió: > Buenas. > > Necesitaria utilizar un array de 2 dimensiones que puede tener de 1 a 999 > elementos. > > Algo así: > > DROP FUNCTION pepe (integer); > CREATE FUNCTION pepe(tamano integer) RETURNS integer > AS $_$ > declare > matriz integer[][]; > i integer; > BEGIN > for i in 1..tamano loop > matriz[i][1] = 1; > matriz[i][2] = 2; > end loop; > return 0; > END; > $_$ > LANGUAGE plpgsql; >
No se si te sirve, lo hice con plperl. CREATE OR REPLACE FUNCTION matriz(integer) returns integer language 'plperl' as $_$ $array = (); my $numero = 0; for ($numero;$numero < $_[0]; $numero++){ $array[$numero][1] = 1; $array[$numero][2] = 2; } return 0; $_$; > Al intentar rellenar el array sale este error: > > select pepe(10); > ERROR: invalid array subscripts > CONTEXT: PL/pgSQL function "pepe" line 7 at assignment > Buscando en los foros, parece ser que hay que inicializar el array en la > declaración, és así?, si así es, ¿hay alguna manera de inicializar sin tener > que declarar todos los elementos? > > Saludos. > > Conxita Marín > Desarrollos Informáticos Modulares de Software, S.L. > www.dims.com -- Emanuel Calvo Franco Sumate al ARPUG ! (www.postgres-arg.org - www.arpug.com.ar) ArPUG / AOSUG Member Postgresql Support & Admin -- TIP 8: explain analyze es tu amigo