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 > > pgbr-geral@listas.postgresql.org.br > > 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 > pgbr-geral@listas.postgresql.org.br > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral > > _______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br 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 pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral