PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Cópia do Postgres da variável com dados CSV


Isso não é possível com o SQL COPY comando. COPY apenas copia de um arquivo ou STDIN .

Você pode gravar o conteúdo da variável em um arquivo ou canalizá-lo via STDIN. Só faz sentido para mais de um par de linhas.

Acho que não entendi sua pergunta antes da atualização, você provavelmente não precisa disso:

O caminho do arquivo não pode ser trocado como outros itens de dados e você não pode usar uma instrução preparada para isso. Construa o todo antes de executar ou recorrer ao SQL dinâmico com uma função do lado do servidor como:
CREATE OR REPLACE FUNCTION f_cp(_file text)
  RETURNS void AS
$BODY$
BEGIN
EXECUTE format($$COPY zip_codes FROM %L DELIMITER ',' CSV$$, $1);
END
$BODY$
  LANGUAGE plpgsql;

Ligar:
SELECT f_cp('/var/lib/postgres/sync/myfile.csv')

format() requer Postgres 9.1 ou posterior.