Hola a todos, estoy tratando de hacer una función en postgres con el
objetivo de obtener valores de una vista pero la función me da error. Pongo
aquí el código de la función para que la vean y si alguien puede me de una
solución, esto es una prueba que estoy haciendo para ver si me funciona,
luego le añadiré más funcionalidad para que de verdad la función sea
operativa y devuelva lo que me hace falta.

 

CREATE OR REPLACE FUNCTION prueba(aid_unidad integer)

RETURNS SETOF vw_nmunidad_org AS

$$

DECLARE control integer;

cadena varchar;

unidad integer;

padre integer;

s varchar;

r_s vw_nmunidad_org%rowtype;

BEGIN

 

 control=0;

 cadena='';

 unidad=aid_unidad;

 s='SELECT * FROM vw_nmunidad_org';

 

 s = s||';';

  raise notice '%', s;

 

  for r_s in

    execute s

  loop

    return next r_s;

  end loop;

  return;

 

END;

$$

LANGUAGE 'plpgsql';

 

El error que da es el siguiente:

 

NOTICE:  SELECT * FROM vw_nmunidad_org;

 

ERROR:  set-valued function called in context that cannot accept a set

CONTEXT:  PL/pgSQL function "eliminar" line 39 at RETURN NEXT

 

********** Error **********

 

ERROR: set-valued function called in context that cannot accept a set

SQL state: 0A000

Context: PL/pgSQL function "eliminar" line 39 at RETURN NEXT

Saludos,

Ing. Esneiker Enriquez Cabrera.

Excelencia en Software.

Desoft S.A. en Ciego de Ávila.

Joaquín de Agüero Esq. Calle 2. Ciego de Ávila. Cuba.

email: <mailto:eenriq...@cav.desoft.cu> eenriq...@cav.desoft.cu 





Responder a