Rs, debugar é preciso.
troque "else if" por "elseif" e problema resolvido.
Em 19/07/07, Leo Matos <[EMAIL PROTECTED]> escreveu:
Olá Leonardo, obrigado pela atenção..
Decidi separar em 2 funções..uma que promove e a outra que retém o aluno
na série....
da mesma forma..acontece o erro...
Segue a função que promove..
CREATE OR REPLACE FUNCTION fncPromoverAlunos(int4,int4)
RETURNS void AS
$BODY$
declare
b record;
c record;
_rm int8;
turma_atual ALIAS FOR $1;
turma_promovidos ALIAS FOR $2;
begin
for c in select rm,situacao from tbalunos_modulo where idturma =
turma_atual loop
_rm = c.rm;
if (c.situacao = 'CC') then -- Aluno promovido sem dependências
insert into tbalunos_modulo (rm,idturma,situacao,chamada) values (_rm,
turma_promovidos, 'NL',0);
else if(c.situacao = 'PP') then -- Aluno promovido com dependências,
teho que colocar as matérias na entidade tbalunos_modulo_pp e cadastrá0lo na
próxima série
insert into tbalunos_modulo (rm,idturma,situacao,chamada) values (_rm,
turma_promovidos, 'NL',0);
for b in
select am.rm,am.idaluno_modulo,amd.idaluno_modulo_disciplina as
amdisc,amd.notafinal,p.idprofessor as prof,p.nome
from tbalunos_modulo am
join tbalunos_modulo_disciplina amd on am.idaluno_modulo =
amd.idaluno_modulo
join tbturmas t on am.idturma=t.idturma
join tbmodulos_disciplinas md on
amd.idmodulo_disciplina=md.idmodulo_disciplina
left join tbturmas_professor tp ON tp.idturma = t.idturma AND
tp.idmodulo_disciplina = md.idmodulo_disciplina
left join tbprofessores p ON p.idprofessor = tp.idprofessor
where t.idturma=turma_atual and am.situacao='PP' and (notafinal is
null or notafinal<=3) -- pego todos as matérias que o aluno ficou de
dependência
loop
insert into tbalunos_modulo_pp
(rm,idaluno_modulo_disc_pp,idprofessor,idaluno_modulo_atual) values
( _rm,b.amdisc,b.prof,currval('
public.tbalunos_modulos_idaluno_modulo_seq'));
end loop ;
end if;
end loop ;
end
$BODY$
LANGUAGE 'plpgsql' VOLATILE;
ALTER FUNCTION fncPromoverAlunos(int4,int4) OWNER TO postgres;
Desde já agradeço;;;;;
Em 19/07/07, Leonardo Chaves <[EMAIL PROTECTED]> escreveu:
>
> posta pelo menos um deles ai .
>
> Em 19/07/07, Leo Matos <[EMAIL PROTECTED] > escreveu:
> >
> > Pessoal,
> >
> > alguém utiliza labels para identificação de loops nas functions que
> > vcs criam?
> >
> > tenho uma function com vários for record in select .... loop, porém
> > gera erro de sintaxe:
> >
> > *ERROR: syntax error at or near "loop"
> > SQL state: 42601*
> >
> > Acho que vários já passaram por isso, alguém poderia me ajudar?
> >
> > Grato
> >
> > Leonardo Matos
> > [EMAIL PROTECTED]
> >
> > _______________________________________________
> > pgbr-geral mailing list
> > [email protected]
> > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
> >
> >
>
>
> --
> Att,
> Leonardo Chaves de Freitas
>
> QualiConsult
> Analista de Bando de Dados - DBA
> _______________________________________________
> pgbr-geral mailing list
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
--
Att,
Leonardo Chaves de Freitas
QualiConsult
Analista de Bando de Dados - DBA
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral