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

Responder a