El día 1 de abril de 2009 15:23, Alvaro Herrera
<[email protected]> escribió:
> Conxita Marín escribió:
>
>
> Creo que esto debería poder hacerse de alguna forma sencilla pero no
> tengo tiempo de buscarla en este momento; lo que conseguí fue lo
> siguiente: (atención, código sin probar)
>
> declare
> matriz integer[] = '{{1,2}}';
> i integer;
> begin
> for i in 1 .. tamano loop
> matriz := matriz || '{1,2}'::integer[];
> end loop;
> end;
>
ubuntu=# CREATE OR REPLACE FUNCTION pepe(tamano integer) RETURNS integer AS $_$
ubuntu$# declare
ubuntu$# matriz integer[] = '{{1,2}}';
ubuntu$# i integer;
ubuntu$# begin
ubuntu$# for i in 1 .. tamano loop
ubuntu$# matriz := matriz || '{1,2}'::integer[];
ubuntu$# -- matriz[i] := 1;
ubuntu$# RAISE NOTICE 'matriz: %', matriz[i];
ubuntu$# end loop;
ubuntu$# return matriz[1];
ubuntu$# end;
ubuntu$# $_$ LANGUAGE plpgsql;
CREATE FUNCTION
ubuntu=# select pepe(8);
NOTICE: matriz: <NULL>
NOTICE: matriz: <NULL>
NOTICE: matriz: <NULL>
NOTICE: matriz: <NULL>
NOTICE: matriz: <NULL>
NOTICE: matriz: <NULL>
NOTICE: matriz: <NULL>
NOTICE: matriz: <NULL>
pepe
------
(1 row)
Faltaría asignarle los valores, pero no probé la asignación de
valores aún.
> BTW es más fácil hacer "create or replace pepe" que "drop function;
> create function".
seguro! :)
--
Emanuel Calvo Franco
Sumate al ARPUG !
(www.postgres-arg.org -
www.arpug.com.ar)
ArPUG / AOSUG Member
Postgresql Support & Admin
--
TIP 2: puedes desuscribirte de todas las listas simultáneamente
(envía "unregister TuDirecciónDeCorreo" a [email protected])