From: | "Patricio Cardenas Garay" <pcardenas(at)colegiointeractivo(dot)com> |
---|---|
To: | "'Jaime Casanova'" <jaime(at)2ndquadrant(dot)com> |
Cc: | <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | RE: Error al Crear Funcion Atravez de PHPPGADMIN |
Date: | 2010-12-09 17:53:21 |
Message-ID: | !&!AAAAAAAAAAAYAAAAAAAAAGSqVoGYTtJLnSkbDghUhpvCgAAAEAAAAMM/XX6BKf1KjMgGrOfGfkYBAAAAAA==@colegiointeractivo.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
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: jcasanov(at)systemguards(dot)com(dot)ec [mailto:jcasanov(at)systemguards(dot)com(dot)ec] En
nombre de Jaime Casanova
Enviado el: Jueves, 09 de Diciembre de 2010 14:30
Para: Patricio Cardenas Garay
CC: pgsql-es-ayuda(at)postgresql(dot)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
<pcardenas(at)colegiointeractivo(dot)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
From | Date | Subject | |
---|---|---|---|
Next Message | Guido Ojeda | 2010-12-09 19:27:00 | No me conecta a bbdd postgresql 7.4 :-S |
Previous Message | MoNiLlO | 2010-12-09 17:42:03 | PL/PGSQL: Lanzar comandos del S.O. |