Importando e Exportando Arquivos TXT para PostgreSQL

Oi PessoALL

Procuramos muito por estas dicas e nada conclusivo. Nosso problema era como importar arquivos txt via função plpgsql no Postgresql.

Para que os passos abaixo funcionem o arquivo txt deve estar em um diretório do servidor de banco de dados e com permissão de leitura ou de escrita para no caso de uma exportação.

Repare que em nosso exemplo utilizamos o Linux com servidor de BD e pode ser rodado via Pgadmin sem problemas

Vamos lá!


Como exportar uma tabela para um arquivo txt separando por  ponto e vírgulas?

BEGIN;
CREATE TEMP TABLE temp_email AS
SELECT * FROM email LIMIT 10;
COPY temp_email TO ‘/tmp/teste3.txt’  using delimiters ‘;’;
ROLLBACK;

Importar um arquivo txt para um determinada tabela separada por ponto e vírgulas;

COPY teste FROM ‘/tmp/teste2.txt’  using delimiters ‘;’;

Ou caso o desejo fosse inserir os dados do arquivos txt em campos especificos de uma tabela.

COPY teste(nome , email) FROM ‘/tmp/teste2.txt’  using delimiters ‘;’;

Função  de Importação de Dados – Tudo Junto

Função de exemplo de importação de dados de um arquivo txt para uma tabela:

– Function: teste_function()
– DROP FUNCTION teste_function();
CREATE OR REPLACE FUNCTION teste_function()
RETURNS text AS
$BODY$DECLARE
mensagem TEXT;
BEGIN

execute ‘COPY teste FROM ”/tmp/teste2.txt”  using delimiters ”;”’;

mensagem := ‘Dados copiados’;
RETURN mensagem;
END$BODY$
LANGUAGE ‘plpgsql’ VOLATILE;
ALTER FUNCTION teste_function() OWNER TO postgres;
COMMENT ON FUNCTION teste_function() IS ‘ Função de Importação de Dados via arquivo externo padrão txt’;

Esperamos ter ajudado.

Abraços e até a próxima

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Sair / Alterar )

Imagem do Twitter

You are commenting using your Twitter account. Sair / Alterar )

Foto do Facebook

You are commenting using your Facebook account. Sair / Alterar )

Connecting to %s

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.