sql >> Databáze >  >> RDS >> PostgreSQL

Postgres Copy from Variable with CSV data

To není možné s SQL COPY příkaz. COPY pouze kopie ze souboru nebo STDIN .

Obsah proměnné můžete buď zapsat do souboru, nebo jej přenést přes STDIN. Má smysl pouze pro více než několik řádků.

Myslím, že jsem před aktualizací špatně pochopil vaši otázku, toto pravděpodobně nepotřebujete:

Cestu k souboru nelze vyměňovat jako jiné datové položky a nelze k tomu použít připravený výpis. Vytvořte celek před provedením nebo se uchýlit k dynamickému SQL s funkcí na straně serveru, jako je:

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;

Volejte:

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

format() vyžaduje Postgres 9.1 nebo novější.




  1. Vyberte Vše před nebo po určité postavě v MariaDB

  2. Jak zastavit nebo omezit provoz SST na Galera Cluster

  3. Jak vybrat sloupce z tabulky, které nemají hodnoty null?

  4. Počet pátků mezi dvěma daty