From: | Emanuel Calvo Franco <postgres(dot)arg(at)gmail(dot)com> |
---|---|
To: | Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> |
Cc: | Conxita Marín <cmarin(at)dims(dot)com>, 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 18:35:45 |
Message-ID: | f205bb120904011135v5f361927mf5a77fc44d215a27@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
El día 1 de abril de 2009 15:23, Alvaro Herrera
<alvherre(at)alvh(dot)no-ip(dot)org> 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
From | Date | Subject | |
---|---|---|---|
Next Message | Emanuel Calvo Franco | 2009-04-01 18:37:22 | Re: consulta demasiado grande |
Previous Message | Rodriguez Fernando | 2009-04-01 18:35:12 | Re: consulta demasiado grande |