Tengo esto
CREATE OR REPLACE FUNCTION anosaprobados ()
RETURNS SETOF respuesta_anoscursados AS
$BODY$
DECLARE
RESPUESTA RECORD;
BEGIN
FOR RESPUESTA IN (
SELECT pro.rut_alumno,inst.rdb,
inst.nombre_instit,anes.nro_ano,
pro.id_ano,(cu.grado_curso || '-' || cu.letra_curso) as cursoletra
FROM promocion pro
inner join institucion inst on inst.rdb = pro.rdb
inner join ano_escolar anes on anes.id_ano = pro.id_ano
inner join matricula ma on ma.id_ano = pro.id_ano and ma.rut_alumno =
18018550
inner join curso cu on cu.id_ano = anes.id_ano and cu.ensenanza > 110 and
cu.id_curso = ma.id_curso
WHERE
pro.rut_alumno = 18018550 and pro.situacion_final = 1 and pro.promedio >
0 and pro.asistencia > 0
ORDER BY anes.nro_ano)
LOOP
RETURN NEXT RESPUESTA;
END LOOP;
RETURN;
END;
$BODY$
LANGUAGE plpgsql;
Con esto
CREATE TYPE respuesta_anoscursados AS
(rut_alumno int4,rdb int4,nombre_instit text,nro_ano int4,id_ano
int4,cursoletra text)
Me retorna esto
ERROR: wrong record type supplied in RETURN NEXT
CONTEXT: PL/pgSQL function "anosaprobados" line 17 at return next
Como lo puedo arreglar por favor