Erro ao migrar quantidade muito extensa de informações de uma tabela do PostgreSQL para TXT
08/04/2014
0
COPY (SELECT * FROM tabela ORDER BY atributo) TO 'C:/C/exemplo.txt' WITH delimiter ';' NULL AS 'null' ENCODING 'LATIN1';
Qualquer ajuda vou ficar muito grato.
Obs: Copiei uma parte dos caracteres que aparecem a mais no txt:
001\\000\\000\\003\\240\\004\\000\\001\\000\\000\\000\\334\\001\\000\\000\\005\\240\\004\\000\\001\\000\\000\\000\\344\\000\\000\\000 \\244\\002\\000!\\000\\000\\000\\302\\000\\000\\000\\000\\000\\000\\0002014:03:24 15:46:23\\0005bf23dd52585e1fb6f78a25416ae3778\\000\\000\\003\\000\\002\\000\\007\\000\\004\\000\\000\\0000100\\001\\020\\004\\000\\001\\000\\000\\000\\261\\011\\000\\000\\002\\020\\004\\000\\001\\000\\000\\000\\266\\015\\000\\000\\000\\000\\000\\000\\006\\000\\003\\001\\003\\000\\001\\000\\000\\000\\006\\000\\000\\000\\032\\001\\005\\000\\001\\000\\000\\000\\\\\\001\\000\\000\\033\\001\\005\\000\\001\\000\\000\\000d\\001\\000\\000(\\00
Daniel Hannemann
Posts
08/04/2014
Jair N.
pelo "pg_dump"
Essa exportação que você está utilizando, como ela é feita?
09/04/2014
Daniel Hannemann
Faço a migração do PostgreSQL pro TXT através do código abaixo:
COPY (SELECT * FROM tabela ORDER BY atributo) TO 'C:/C/exemplo.txt' WITH delimiter ';' NULL AS 'null' ENCODING 'LATIN1';
Eu passaria direto do PostgreSQL pro Excel pra pular um passo, mas alguns atributos são do tipo Date e outros possuem 0 à esquerda que somem no excel. Então é necessário primeiro Formatar as Células no Excel pro tipo Texto pra não dar erro (mas isso é outra história. rs).
09/04/2014
Alex Lekao
So uma duvida que fiquei, as duas tabelas sao do proprio postgree?
se sim, seria basicamente um insert do dados em outra tabela correto?
Experimente fazer um insert com o select do que vc precisa, assim vc coloca no select a ordem correta dos campos para nao ter problema com relacao a ordem e faz as conversoes dos formatos no select para vc nao ter problemas com os formatos, acredito que resolva o problema.
Espero ter ajudado.
Abraco.
Alex - Lekao
P.S.: Nao tenho conhecimentos com PostGreeSQL. rsrsr
09/04/2014
Daniel Hannemann
Vou usar sua ideia pra situações futuras em que as duas tabelas estejam no mesmo Banco.
Mas pro caso atual (de Bancos diferentes), pelo que pesquisei é possível tbm, mas não consegui e decidi partir pro TXT e fiquei apenas com esse problema de exportar uma quantidade extensa de dados rsrs
09/04/2014
Alex Lekao
Entao vamos para outra sugestao entao. rsrsr
No lugar de exportar como TXT, experimente exportar como CSV, eh um TXT tambem, so que para uso mais geral, nele vc tem que definir os separadores de colunas etc.
Nao sei como o PostGree se comporta a respeito nem como ele faz, mas eh mais uma sugestao.
no caso de serem bancos diferentes, eles estao no mesmo servidor? talvez seja so indicar o caminho do banco pelas schemas.
eu tenho varios bancos aqui(SQL Server) e estao todos no mesmo servidor, eu so indico o caminho e as tabelas, banco.dbo.tabela e consigo copiar, selecionar, atualizar tudo, mais uma ideia mesmo. rsrsr
09/04/2014
Daniel Hannemann
Sim. Estão no mesmo servidor. Vou tentar indicar o caminho do banco antes das tabelas, banco.dbo.tabela como vc mencionou.
Espero que dê certo, pois além de resolver o meu problema, me faria economizar muito tempo xD
Muito obrigado pela ajuda!
09/04/2014
Alex Lekao
Eu uso muito isso... no SQL Server, acredito que seja igual ou similar a forma.
Espero que de certo.
Precisando eh so falar, estamos aqui para ajudar.
boa sorte!!!
Abraco.
Alex - Lekao
09/04/2014
Bruno Leandro
Alex no Postgre não tem ainda implementado cross database, então não é possivel utilizar select NomeBanco.NomeTabela.NomeCampo
O que da para ser feito é dblink,
outra forma é criar uma aplicação que fazer uma query com os selects em um banco e insert no outro banco
Clique aqui para fazer login e interagir na Comunidade :)