----- Original Message -----
From: Rodrigo Sperb
To: [email protected]
Sent: Tuesday, October 20, 2009 11:03 AM
Subject: [pgbr-geral] UPDATE em a FOR LOOP de uma função não funciona
Olá a todos,
Estou tendo um problema para realizar um UPDATE numa tabela dentro de um FOR
LOOP de uma função. Por algum motivo, o UPDATE não é realizado.
Aqui está a parte em que dá problema:
FOR ltt IN SELECT * FROM arrival_time_function AS at INNER JOIN edge AS e ON
e.t_node=at.vid WHERE e.f_node=n_i
LOOP
geo := (SELECT dr_arrivaltime_function(geo_ti,n.geom, ltt.geom,
tau_i,tau_prime)
FROM (SELECT ltt.t_node AS vid, ef.geom
FROM _edge_delay_function_ AS ef
WHERE ltt.id=ef.eid AND ltt.val_dir=ef.val_dir) AS n);
RAISE NOTICE 'geo =
%', st_AsText(geo);
ivid := ltt.vid;
RAISE NOTICE 'ivid =
%', ivid;
UPDATE arrival_time_function SET geom=geo WHERE vid=ivid;
DELETE FROM _queue_arrival_time_ WHERE vid=ltt.t_node AND tau >= tau_i AND
tau <= tau_prime;
END LOOP;
Ah! ltt é declarado como do tipo record. E as NOTICEs me indicam que o que
não acontece é a atualização na tabela, que o resto vai bem. Por favor,
entendam que esse código já foi retrabalhado para tentar resolver o problema.
Então, por exemplo, a variável "ivid" foi criada para ver se assim funcionava,
ao invés de simplesmente colocar "vid=ltt.vid" O DELETE que segue o UPDATE
parece não funcionar também...
Espero que alguém tenha uma idéia de qual é o problema. Desde já agradeço
eventuais sugestões. Isso faz parte da implementação do meu mestrado e perdi
quase o dia todo por esso erro, ao meu ver, bobo...
Atenciosamente
Rodrigo Sperb
------------------------------------------------------------------------------------------------------------------
Esta mensagem foi verificada pelo sistema de Segurança da SJB Solados.
------------------------------------------------------------------------------
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Boa Tarde,
Já me aconteceu uma vez a mesma situação, acabei descobrindo que dentro da
função tinha criado uma variável com o mesmo nome do campo da tabela que estava
executando o update.
Foram 4 horas até achar...
Sds,
Irineu Raymundo
------------------------------------------------------------------------------------------------------------
Esta mensagem foi verificada pelo sistema de Segurança da SJB Solados Ltda.
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral