sql >> Databasteknik >  >> RDS >> PostgreSQL

Postgres Kopiera från Variable med CSV-data

Det är inte möjligt med SQL COPY kommando. COPY endast kopior från en fil eller STDIN .

Du kan antingen skriva innehållet i variabeln till en fil eller skicka den via STDIN. Det är bara meningsfullt för mer än ett par rader.

Jag tror att jag missförstod din fråga innan uppdateringen, du behöver förmodligen inte detta:

Filsökvägen kan inte utbytas som andra dataobjekt, och du kan inte använda en förberedd sats för det. Bygg helheten sats innan du kör eller tillgriper dynamisk SQL med en funktion på serversidan som:

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;

Ring:

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

format() kräver Postgres 9.1 eller senare.




  1. En datamodell för en väderapp

  2. SSIS-handledning för nybörjare:Varför, vad och hur?

  3. Hur man installerar SQL Server Manager Studio (SSMS) - SQL Server / TSQL självstudie del 1

  4. RDLC LocalReport Export till Excel riktigt långsam