Neste exemplo, vamos executar os comandos do cliente psql através do prompt de comando do Windows.
Em breve, será postado como executar os comandos no terminal linux.
Não confunda com o comando sql copy, onde o arquivo deve estar obrigatoriamente no servidor.
Para saber mais sobre o comando sql copy acesse o link: PostgreSql - exportar arquivo csv e txt
1º) Exemplo
Vamos exportar os dados da tabela "estoque", contida no banco de dados "db_rem", localizado no servidor "104.197.20.162" para o arquivo "estoque.csv" no diretório "C:\temp" da máquina cliente.
Caso tenha interesse, faça o download deste exemplo no Google Drive ou veja no GitHub.
a) Abra o prompt de comando.
b) Faça a autenticação no servidor.
Segue o comando:
Legenda:
-h: ip ou nome do servidor;
-d: nome do banco de dados;
-U: nome do usuário;
c) Será solicitada a senha, repare que ao digitar a senha não serão exibidos os caracteres. Digite a senha e pressione "Enter".
d) Agora utilize o comando \copy para exportar os dados para o arquivo estoque.csv:
\COPY ( SELECT codigo, produto, categoria, marca, preco, quantidade FROM estoque) to 'C:/temp/estoque.csv' WITH DELIMITER AS ';' CSV HEADER
Vamos exportar os dados da tabela "estoque", contida no banco de dados "db_rem", localizado no servidor "104.197.20.162" para o arquivo "estoque.csv" no diretório "C:\temp" da máquina cliente.
Caso tenha interesse, faça o download deste exemplo no Google Drive ou veja no GitHub.
Dados da tabela estoque que serão exportados. |
Localização e script da tabela "estoque" |
Diretório C:\temp |
Para a exportação siga as etapas abaixo:
a) Abra o prompt de comando.
Prompt de Comando |
b) Faça a autenticação no servidor.
Autenticação |
Segue o comando:
psql -h 104.197.20.162 -d db_rem -U postgres
Legenda:
-h: ip ou nome do servidor;
-d: nome do banco de dados;
-U: nome do usuário;
c) Será solicitada a senha, repare que ao digitar a senha não serão exibidos os caracteres. Digite a senha e pressione "Enter".
d) Agora utilize o comando \copy para exportar os dados para o arquivo estoque.csv:
\COPY ( SELECT codigo, produto, categoria, marca, preco, quantidade FROM estoque) to 'C:/temp/estoque.csv' WITH DELIMITER AS ';' CSV HEADER
Comando \copy |
Legenda:
- \COPY: comando psql;
- (SELECT codigo, produto, categoria, marca, preco, quantidade FROM estoque): dentro do parenteses colocamos uma query (consulta da tabela estoque). Neste exemplo, foram exportadas todas as colunas da tabela estoque mas isto não é obrigatório, podemos colocar na query algumas colunas ou retornar apenas alguns registros utilizando WHERE na query;
- to 'C:/temp/estoque.csv': após o "to" deverá ser colocado o nome do diretório, seguido pelo nome do arquivo e a extensão. Neste exemplo, a extensão é ".csv" mas poderia ser ".txt". Importante!!! Até mesmo no sistema operacional Windows, repare que NÃO se deve utilizar a barra invertida "\", e sim a barra normal "/" para identificar o diretório;
- WITH DELIMITER AS ';': o delimitador serve para separar as colunas do arquivo. Após o "WITH DELIMITER AS", coloque o delimitador. Neste exemplo, escolhemos o ";" mas o delimitador pode ser "|" ou "," entre outros;
- CSV HEADER: este parâmetro indica que o nome das colunas serão exportados como cabeçalho na primeira linha do arquivo;
Após executar o comando foi gerado um arquivo com cabeçalho e 3 registros.
2º) Exemplo
Arquivo: estoque.csv |
2º) Exemplo
O procedimento é o mesmo do anterior com exceção do comando \copy que NÃO será utilizado o parâmetro CSV HEADER.
Caso tenha interesse, faça o download deste exemplo no Google Drive ou veja no GitHub
Dados da tabela estoque que serão expotados |
\COPY ( SELECT codigo, produto, categoria, marca, preco, quantidade FROM estoque) to 'C:/temp/estoque_sc.csv' WITH DELIMITER AS ';'
Comando \copy |
Legenda:
- \COPY: comando psql;
- (SELECT codigo, produto, categoria, marca, preco, quantidade FROM estoque): dentro do parenteses colocamos uma query (consulta da tabela estoque). Neste exemplo, foram exportadas todas as colunas da tabela estoque mas isto não é obrigatório, podemos colocar na query algumas colunas ou retornar apenas alguns registros utilizando WHERE na query;
- to 'C:/temp/estoque_sc.csv': após o "to" deverá ser colocado o nome do diretório, seguido pelo nome do arquivo e a extensão. Neste exemplo, a extensão é ".csv" mas poderia ser ".txt". Importante!!! Até mesmo no sistema operacional Windows, repare que NÃO se deve utilizar a barra invertida "\", e sim a barra normal "/" para identificar o diretório;
- WITH DELIMITER AS ';': o delimitador serve para separar as colunas do arquivo. Após o "WITH DELIMITER AS", coloque o delimitador. Neste exemplo, escolhemos o ";" mas o delimitador pode ser "|" ou "," entre outros;
Após executar o comando foi gerado um arquivo com 3 registros..
Legal as dicas!!! Obrigada!!!
ResponderExcluirFico feliz por ter contribuído!
ExcluirMuito obrigado! Foi muito útil!
ResponderExcluirMuito bom!!
ResponderExcluirAjudou demais!! Muito obrigado
ResponderExcluir