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
Arquivado em: Bancos de Dados