Bom dia pessoal

Estou com o seguinte problema:
Preciso que o resultado do for seja feito atualizado na tabela remota

    CREATE OR REPLACE FUNCTION replica()
  RETURNS SETOF "varchar" AS
$BODY$
    declare
        ultima timestamp;
    registro RECORD;
    sql text;
    begin

SELECT INTO ultima ultimasincronizacao FROM replicacao WHERE  
    status = TRUE order by ultimasincronizacao;    
    
    FOR registro IN SELECT taxa, codigocartao from log_cartoes where 
hora >= ultima LOOP
    
    sql := 'UPDATE cartoes set taxa = registro.taxa where codigocartao = 
registro.codigocartao';    
    PERFORM dblink_exec('host=192.168.0.189 dbname=banco user=postgres 
password=1234',sql);
    
    END LOOP;
    END;
    $BODY$
  LANGUAGE 'plpgsql' VOLATILE;

    Está gerando o seguinte erro:


ERRO:  sql error
DETAIL:  ERROR:  missing FROM-clause entry for table "registro"

CONTEXT:  comando SQL "SELECT  dblink_exec('host=192.168.0.189 
dbname=banco user=postgres password=1234', $1 )"
PL/pgSQL function "replica" line 13 at perform




Obrigado

Abraço


Bruno Vasconcellos

                
_______________________________________________________ 
Yahoo! Mail - Sempre a melhor opção para você! 
Experimente já e veja as novidades. 
http://br.yahoo.com/mailbeta/tudonovo/
 

_______________________________________________
Grupo de Usuários do PostgreSQL no Brasil
Antes de perguntar consulte o manual
http://pgdocptbr.sourceforge.net/

Para editar suas opções ou sair da lista acesse a página da lista em:
http://pgfoundry.org/mailman/listinfo/brasil-usuarios

Responder a