Skip site navigation (1) Skip section navigation (2)

Re: [pgsql-es-ayuda] Como ejecutar una función en po?==?iso-8859-1?Q?stgres

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 po?==?iso-8859-1?Q?stgres
Date: 2008-08-13 02:38:00
Message-ID: 5FFFAF4D581A41C4810309DC4DCDBF9C@Principal (view raw or flat)
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.

http://www.eset.com 


In response to

pgsql-es-ayuda by date

Next:From: Raúl Andrés Duque MurilloDate: 2008-08-13 10:40:55
Subject: ROW constructor no es compatible con tipo RECORD
Previous:From: andrea lisseth fuentes menesesDate: 2008-08-13 02:13:01
Subject: Como ejecutar una función en postgres

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group