From: andrea lisseth fuentes meneses
Sent: Tuesday, August 12, 2008 9:13 PM
To: [EMAIL PROTECTED] ; 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.
http://www.eset.com
--
TIP 10: no uses HTML en tu pregunta, seguro que quien responda no podrá leerlo