Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/04/2007, 21:37
Dcinigo
 
Fecha de Ingreso: abril-2007
Mensajes: 1
Antigüedad: 17 años, 1 mes
Puntos: 0
funcion retorna tabla

Hola, estoy haciendo una funcion que me debe retornar un conjunto de elementos que he agrupado en un tipo nuevo que he creado. El problema esta en que la funcion es ejecutada correctamente cuando en el EMS PostgreSQL manager le doy Execute en el lado izquierdo de la funcion, pero cuando trato de ejecutar el script SELECT "FListadoDepartamentos"() me da un error. Debajo les pongo la funcion y el error. Espero tu respuesta.
Saludos
Dayron

CREATE OR REPLACE FUNCTION "public"."FListadoDepartamentos" () RETURNS SETOF "public"."dptolistado" AS
$body$
declare
tabla dptolistado%ROWTYPE;
begin
for tabla in SELECT
"Departamento"."ID_Departamento",
"Departamento"."Descripcion",
"Departamento"."Nombre",
"Profesor"."Categoria_Cientifica",
"Profesor"."Graduado_De",
"Persona"."Solapin",
"Persona"."PNombre",
"Persona"."SNombre",
"Persona"."PApellido",
"Persona"."SApellido",
"Persona"."CI"
FROM
"Departamento"
INNER JOIN "Profesor" ON "Departamento"."SolapinJDpto" = "Profesor"."SolapinProf"
INNER JOIN "Persona" ON "Profesor"."SolapinProf" = "Persona"."Solapin" loop
return next tabla;
end loop;
return;
end
$body$
LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;

ERROR: set-valued function called in context that cannot accept a set
CONTEXT: PL/pgSQL function "FListadoDepartamentos" line 20 at return next