2013/11/12 Eduardo Rodrigues <[email protected]>

> Pessoal, estou utilizando CTE para copiar os dados de um banco de dados
> remoto. Ao executar a instrução abaixo acusa erro o seguinte erro no
> PgAdmin:
>
> ERROR:  syntax error at or near "RETURNING"
> LINE 6:     RETURNING *
>             ^
>
> ********** Error **********
>
> ERROR: syntax error at or near "RETURNING"
> SQL state: 42601
> Character: 238
>
> *Instrucao SQL que retorna o Erro*
>
>
> WITH moved AS (
> select dblink_exec('host=host user=user_db password=123 dbname=db',
>  'DELETE FROM remote_table ')
>  RETURNING *
>

Acho que você queria o returning dentro do SQL remoto, e, como espera
retornar linhas usar a função dblink ao invés de dblink_exec:

SELECT * FROM dblink('host=host user=user_db password=123 dbname=db',
 'DELETE FROM remote_table RETURNING *')  AS t(col1 tipo1, col2 tipo2, ...);



>  )
> INSERT INTO table_local
> SELECT * FROM moved;
>
> Nao posso utilizar o CTE para migrar os dados atraves do DBLINK?
>
>

PS: Cuidado com esse tipo de operação, da forma como está fazendo não está
garantido a atomicidade.

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