From: | Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> |
---|---|
To: | Mario Jiménez Carrasco <mario(dot)carrasco(at)gmail(dot)com> |
Cc: | Ayuda <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Función que reciba un set o el resultado de una consulta. |
Date: | 2012-02-29 03:46:12 |
Message-ID: | 1330486948-sup-4946@alvh.no-ip.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Excerpts from Mario Jiménez Carrasco's message of mié feb 29 00:34:19 -0300 2012:
> En realidad la función debe procesar en una sola invocación todos los
> registros de la tabla temporal....
>
> Pero intentaré como comentas...
Bueno, si tiene que procesarlos todos juntos entonces no tiene sentido
intentar procesar cada registro en una invocación.
> Solo para salir de la intriga... si existe forma de enviar la tabla
> temporal como parámetro?... es posible? Se puede recorrer cada registro de
> la temporal dentro de la función?
No puedes "enviar" el contenido de la tabla. Puedes pasarle el nombre
de la tabla, y hacer que la función la recorra. Eso es trivial:
FOR r IN SELECT * FROM la-tabla LOOP
-- procesar el registro r aquí
END LOOP;
Si el nombre de la tabla es siempre el mismo, no necesitas nada más que
lo de arriba; si el nombre varía con cada invocación (¿por qué?
considera que las tablas temporales son locales a cada sesión) puedes
usar un EXECUTE.
--
Álvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
From | Date | Subject | |
---|---|---|---|
Next Message | Mario Jiménez Carrasco | 2012-02-29 04:03:18 | Re: [pgsql-es-ayuda] Función que reciba un set o el resultado de una consulta. |
Previous Message | Mario Jiménez Carrasco | 2012-02-29 03:34:19 | Re: [pgsql-es-ayuda] Función que reciba un set o el resultado de una consulta. |