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