Alvaro Herrera escribió:
Oswaldo Hernández escribió:

Acabo de ver que en 8.4 existe la funcion 'unnest(array[])' que hace
exactamente eso, separar los valores de un array en filas.

Desgraciadamente todavía ando con 8.3 :(

En 8.3 puedes escribir una función unnest fácilmente en plpgsql.  Es
algo así como

select $1[i] from generate_series(array_lower($1, 1), array_upper($1, 1)) i;


Como afinas Alvaro!

La función que envié antes quedaría entonces así:

CREATE OR REPLACE FUNCTION public.unnest(IN a anyarray, OUT v anyelement) RETURNS SETOF anyelement AS
$BODY$
/******************************************
emulacion de funcion unnest(array[]) de 8.4
para utilizar en versiones inferiores
*******************************************/
select $1[i] from generate_series(array_lower($1, 1), array_upper($1, 1)) i;

$BODY$
  LANGUAGE 'sql' VOLATILE;
ALTER FUNCTION public.unnest(anyarray) OWNER TO postgres;



--
*****************************************
Oswaldo Hernández
oswaldo (@) soft-com (.) es
*****************************************
PD:
Antes de imprimir este mensaje, asegúrese de que es necesario.
El medio ambiente está en nuestra mano.
--
TIP 10: no uses HTML en tu pregunta, seguro que quien responda no podrá leerlo

Responder a