Buen Hombre me podrías ayudar con esto 
Bueno agregué el record en la salida tratando de sacar este otro Error

Error de SQL:

ERROR:  wrong record type supplied in RETURN NEXT
CONTEXT:  PL/pgSQL function "anosaprobados" line 33 at RETURN NEXT


La consulta es esta 
***************************************
select * from anosaprobados(17938327)


La Funcion es 
****************************************
CREATE OR REPLACE FUNCTION anosaprobados (integer)
RETURNS SETOF respuesta_anoscursados AS
$BODY$
DECLARE
RESPUESTA RECORD;
rutingresado ALIAS FOR $1;
BEGIN
  
  FOR RESPUESTA IN (
      
  SELECT 
  inst.rdb as insti,
  pro.id_ano as id_año,
  pro.rut_alumno as rut_alumno,
  inst.nombre_instit as nombreinstitucion,
  anes.nro_ano as numero_año,
  (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 =
17980141
  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 = 17980141 and pro.situacion_final = 1 and pro.promedio > 0
and pro.asistencia > 0
  UNION
  SELECT 
  0 as insti,
  0 as id_año,
  conce.rut_alumno ,
  conce.institucion,
  conce.ano,
  (conce.curso || '-' || conce.letra) as cursoletra
  FROM concentracion_notas conce where conce.rut_alumno = 17980141   )
   
  LOOP
      RETURN NEXT RESPUESTA;
  END LOOP;
  
RETURN;
END;
$BODY$
LANGUAGE plpgsql;

Con esto 

CREATE TYPE respuesta_anoscursados AS 
(rut_alumno integer,rdb integer,nombre_instit char(1000),nro_ano
integer,id_ano integer,cursoletra varchar(2))


Mmm esto es primera vez que lo ago estoy aprendiendo.
 :D gracias


-----Mensaje original-----
De: jcasa...@systemguards.com.ec [mailto:jcasa...@systemguards.com.ec] En
nombre de Jaime Casanova
Enviado el: Jueves, 09 de Diciembre de 2010 14:30
Para: Patricio Cardenas Garay
CC: pgsql-es-ayuda@postgresql.org
Asunto: Re: [pgsql-es-ayuda] Error al Crear Funcion Atravez de PHPPGADMIN

On Thu, Dec 9, 2010 at 7:34 AM, Patricio Cardenas Garay
<pcarde...@colegiointeractivo.com> wrote:
> SQL error:
>
> ERROR:  plpgsql functions cannot take type record
>
> In statement:
>
> CREATE FUNCTION "anosaprobados" (OUT x integer,OUT rdb1 integer,OUT
id_ano1
> integer,OUT rut_alumno1 integer,OUT nombre_instit1 text,OUT nro_ano1
> integer,OUT cursoletra1 text,OUT RESPUESTA record) RETURNS SETOF record AS
> 'DECLARE
>

No puedes declarar un parametro de salida como "record" (es el caso de
tu ultimo parametro), eso es porque record es generico y postgres
necesita saber que esta retornando

-- 
Jaime Casanova         www.2ndQuadrant.com
Professional PostgreSQL: Soporte y capacitación de PostgreSQL

-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

Responder a