2015-02-26 10:03 GMT-03:00 Matheus Ferreira <[email protected]>:

>   select  * from dblink_exec
>
>                             ('dbname=igobal_bk
>
>                               hostaddr=172.16.42.13
>
>                               user=postgres
>
>                               password=04474180
>
>                               port=5432',
>
>     'INSERT INTO matheus
>
>     VALUES((NEW).*)');
>

Isso não vai funcionar, o dblink recebe o comando como uma string e não vai
saber de onde vem o NEW, você vai precisar desmembrar o NEW e criar o
comando INSERT. Nesse caso a contrib hstore pode ser de grande ajuda.
Exemplo (não testado):

    PERFORM dblink_exec('dbname=... ',
            (
                SELECT 'INSERT INTO tabela(' ||
string_agg(quote_ident(key), ',')
                    || ') VALUES(' || string_agg(quote_literal(value), ',')
|| ')'
                FROM each(hstore(NEW))
            )
    );

Atenciosamente,
-- 
Matheus de Oliveira
Analista de Banco de Dados
Dextra Sistemas - MPS.Br nível F!
www.dextra.com.br/postgres
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a