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