From: | Raúl Andrés Duque Murillo <ra_duque(at)yahoo(dot)com(dot)mx> |
---|---|
To: | "andrea lisseth fuentes meneses" <andri04_7(at)hotmail(dot)com>, <hermeszambra(at)yahoo(dot)com>, "lista postgres" <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: [pgsql-es-ayuda] Como ejecutar una función en postgres |
Date: | 2008-08-13 02:38:00 |
Message-ID: | 5FFFAF4D581A41C4810309DC4DCDBF9C@Principal |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
>
>
>From: andrea lisseth fuentes meneses
>Sent: Tuesday, August 12, 2008 9:13 PM
>To: hermeszambra(at)yahoo(dot)com ; lista postgres
>Subject: [pgsql-es-ayuda] Como ejecutar una función en postgres
>
>
>Buenas noches:
>
>Estoy trabajando en mi proyecto de grado agradezco mucho la ayuda que me
>puedan ofrecer.
>
>tengo esta función que toma los registros de una tabla y los pasa a otra,
>cada una pertenece a diferentes esquemas, ya que soy nueva en este tema me
>gustaria saber como poder ejecutar la función ya >que intento con execute
>como se hace en sqlserver, pero me arroja error de sintaxis.
>
>la funcion es la siguiente
>
>CREATE OR REPLACE FUNCTION bodega.ciudad_fn() RETURNS void AS $$
> DECLARE
> llenar RECORD;
> consecutivo integer :=0;
>BEGIN
> FOR llenar in select mun_cdgo,mun_nmbre from udi.mncpios
> LOOP
> consecutivo:=(consecutivo+1);
> INSERT INTO bodega.ciudad values
> (consecutivo,llenar.mun_cdgo,llenar.mun_nmbre);
> END LOOP;
> RETURN;
>
>END;
>$$ LANGUAGE PLPGSQL;
>
>y la intento ejecutar asi:
>EXECUTE bodega.ciudad_fn();
>me aparece error de sintaxis:
>
>ERROR: error de sintaxis en o cerca de «.»
>LINEA 1: EXECUTE bodega.ciudad_fn();
>
>
>Muchas gracias;
>
>Andrea Lisseth Fuentes Meneses
Andrea para ejecutar la función utiliza:
SELECT bodega.ciudad_fn();
Adicional a eso podrías definir el campo consecutivo como autonumérico y
modificar tu función para que trabaje "set based" (no necesitas iterar por
cada registro). Serial algo como:
INSERT INTO bodega.cuidad (mun_cdgo, mun_nmbre)
SELECT mun_cdgo, mun_nmbre
FROM udi.mncpios
Atentamente,
RAUL DUQUE
Bogotá, Colombia
¡Sé solidario, haz clic! Por cada búsqueda que hagas desde Windows Live
Search, estarás ayudando a los que más lo necesitan Un clic solidario
__________ Information from ESET Smart Security, version of virus signature
database 3350 (20080812) __________
The message was checked by ESET Smart Security.
From | Date | Subject | |
---|---|---|---|
Next Message | Raúl Andrés Duque Murillo | 2008-08-13 10:40:55 | ROW constructor no es compatible con tipo RECORD |
Previous Message | andrea lisseth fuentes meneses | 2008-08-13 02:13:01 | Como ejecutar una función en postgres |