Ir para conteúdo
Fórum Script Brasil
  • 0

Exportar tabela do PostgreSQL para TXT de forma ordenada


dhannemann

Pergunta

Olá. Meu problema é o seguinte:

Estou usando o código abaixo pra transferir dados de uma tabela no Banco para um TXT, mas quando abro o documento de texto, os dados estão em uma ordem aleatória. Gostaria de saber se é possível fazer um "order by" no atributo "id".

Estou usando o código:

COPY tabela TO 'C:/exemplo.txt' using delimiters ';' WITH NULL AS 'null';

Qualquer ajuda eu vou ficar muito grato

A propósito... quando têm muitas tuplas (por exemplo 6.000) o txt não abre. Alguma solução pra isso?

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0
COPY (
    select *
    from tabela
    order by id
) TO 'C:/exemplo.txt' using delimiters ';' WITH NULL AS 'null';

Quanto ao editor de texto não abrir é porque o editor tenta colocar tudo em memória. Qual é o SO? No Linux eu uso o less mesmo (linha de comando).

Editado por Kakao
Link para o comentário
Compartilhar em outros sites

  • 0
Kakao muito obrigado pela resposta! Funcionou aqui! Mas por algum motivo estranho tá dando erro. Tirei o
using delimiters ';'  
e deu certo.
Já dá pra eu fazer as coisas. Basta no TXT substituir o valor de espaçamento por ponto e vírgula, mas se tiver uma explicação ou solução pra isso eu agradeço xD
Sobre o SO o meu é Windows 7. Será que tem alguma forma de funcionar?
Link para o comentário
Compartilhar em outros sites

  • 0

É a 9.3.4. Mas o problema tá no using delimiters ';' mesmo. Mas isso não é problema.

O que tá me preocupando é esse erro estranho quando a tabela tem mtas linhas. Não sei se o problema são as muitas linhas, ou se é porque tem vários dados strings com mais ou menos 200 caracteres. Só sei que o TXT fica com tamanho superior a 9 MB e qd abro demora um pouco pra exibir os dados e quando abre tem uns valores estranhos. Isso aqui:

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

Muitas vezes esses caracteres estranhos ai.

Acho que devo abrir outro tópico pra esse problema? Acho que é mais certo, já que o do título já foi resolvido.

Link para o comentário
Compartilhar em outros sites

  • 0

Mas o problema tá no using delimiters ';' mesmo.

É "delimiter" no singular sem o "s" no final e sem a palavra "using". E o "WITH" é antes de todas as opções:

WITH delimiter ';', NULL 'null';
Verifique as codificações do servidor e do cliente

show server_encoding;
show client_encoding;
Tente usar a codificação do cliente no "COPY"

WITH delimiter ';', NULL 'null', ENCODING 'LATIN1';
Editado por Kakao
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...