| From: | Emanuel Calvo Franco <postgres(dot)arg(at)gmail(dot)com> | 
|---|---|
| To: | Conxita Marín <cmarin(at)dims(dot)com> | 
| Cc: | pgsql-es-ayuda(at)postgresql(dot)org | 
| Subject: | Re: [pgsql-es-ayuda] Como utilizar un array dinámico en función plpgsql | 
| Date: | 2009-04-01 15:17:33 | 
| Message-ID: | f205bb120904010817q747f39a0n10b665d0101c3f28@mail.gmail.com | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-es-ayuda | 
El día 1 de abril de 2009 4:29, Conxita Marín <cmarin(at)dims(dot)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
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Conxita Marín | 2009-04-01 17:08:28 | Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Como utilizar un array dinámico en función plpgsql | 
| Previous Message | Conxita Marín | 2009-04-01 07:29:10 | Como utilizar un array dinámico en función plpgsql |