Hola, como estas llamando a esa función?

On 06/04/16 11:49, MKHotmail wrote:

Buenos días, estoy haciendo una función simple…y me arroja este error :

Microsoft OLE DB Provider for ODBC Drivers : ERROR: se llamó una función que retorna un conjunto en un contexto que no puede aceptarlo;

Error while executing the query

Mi función es esta : solo es pasar la información importada de una tabla a la de producción(si existe actualiza sino lo agrega..) :

CREATE OR REPLACE FUNCTION public.grabar_importaciones()

RETURNS SETOF "record" AS

$BODY$

DECLARE

r RECORD;

  cuenta INTEGER;

BEGIN

            FOR r IN select * from tbl_temporal

LOOP

SELECT INTO cuenta count(*) FROM productos where idproducto = r.idproducto ;

IF cuenta > 0 THEN

UPDATE productos SET nombre_producto = r.nombre_producto, idfamilia = r.idfamilia,

idsubfamilia = r.idsubfamilia Where idproducto = r.idproducto ;

ELSE

INSERT INTO productos(idproducto, nombre_producto, idfamilia, idsubfamilia)

Values(r.idproducto, r.nombre_producto, r.idfamilia, r.idsubfamilia);

END IF ;

return next r ;

END LOOP;

return;

END;

$BODY$

LANGUAGE 'plpgsql' VOLATILE;

Podrian indicarme por donde va mi espantoso error J

Gracias

MK


Responder a