tente usar antes do delete! ----- Original Message ----- From: "geison correia" <[EMAIL PROTECTED]> To: "Comunidade PostgreSQL Brasileira" <pgbr-geral@listas.postgresql.org.br> Sent: Tuesday, November 06, 2007 3:57 PM Subject: Re: [pgbr-geral] Erro SELECT
Eu vou postar minha função aqui pra ficar mais claro: CREATE OR REPLACE FUNCTION filtro_de_velocidade() RETURNS void AS $$ DECLARE diameter INTEGER; codigosArena RECORD; tempogasto RECORD; data_hora time; velocidade RECORD; c INTEGER; b INTEGER; a INTEGER; x INTEGER; resultado RECORD; BEGIN SELECT current_time; /*pega a hora/data corrente do servidor*/ data_hora := current_date; /* insere em hora a hora/data corrente do servidor */ SELECT to_String(data_hora, 'yyyy-mm-dd, HH24:MI.SS'); /* converte hora para o formato especificado*/ SELECT INTO codigosArena cd_veiculo_arena from t_veiculo; /* codigosArena recebe cd_veiculo_arena da tabela t_veiculo codigosArena := cd_veiculo_arena */ SELECT INTO resultado * from dado_lido where vei_id = codigosArena; /* resultado recebe todos os dados da tabela dado_lido. onde vei_id(PK) é igual a codigoArena(cd_veiculo(FK)) */ diameter := 0; WHILE resultado AND resultado.ddl_dh >= data_hora LOOP diameter := 12742000; c := 90 - (resultado.ddl.lat[0]); b := 90 - (resultado.ddl.lat[1]); a := resultado.ddl.lat[0] - (resultado.ddl.lat[1]); x := acos((cos(b) * cos(c)) + (sin(b) * sin(c) * cos(a))); x := (PI * diameter * x) / 360; tempogasto := resultado.ddl.lat[1] - resultado.ddl.lat[0]; velocidade := x/tempogasto; IF (velocidade > 150) THEN DELETE FROM dado_lido WHERE vei_id = codigosArena AND ddl_dh = data_hora; END IF; END LOOP; Como e onde eu devo usar o PERFORM? Obrigado a todos! ------------------------------------------------------------------------ Em 06/11/07, Dickson Guedes<[EMAIL PROTECTED]> escreveu: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > geison correia escreveu: > > (...) Cara olha só a minha função retorna um void > > > > CREATE OR REPLACE FUNCTION filtro_de_velocidade() RETURNS void AS > > $$ . . . RETURN; END; $$ LANGUAGE plpgsql; > > > > Como eu devo usar "SELECT filtro_de_velocidade()"? > > Geison, > > Se sua função retorna void para onde vai o resultado do SELECT? Como o > próprio aviso da mensagem de erro recomenda não seria o caso de você > utilizar "PERFORM"? > > [ ]s > Guedes > > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v1.4.2 (GNU/Linux) > Comment: Using GnuPG with SUSE - http://enigmail.mozdev.org > > iD8DBQFHMKe1fNj5A+QkLMoRAuMTAKCagV9/JPIFvjyavZGxb5ex8WK5BACg506I > ySJDy7k14WsmcDGq6p4YHWg= > =zsrQ > -----END PGP SIGNATURE----- > > _______________________________________________ > 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 _______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral