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

Responder a