sql >> Database teknologi >  >> RDS >> PostgreSQL

Postgres Kopier fra Variable med CSV-data

Det er ikke muligt med SQL COPY kommando. COPY kun kopier fra en fil eller STDIN .

Du kan enten skrive indholdet af variablen til en fil eller overføre den via STDIN. Giver kun mening for mere end et par rækker.

Jeg tror, ​​jeg misforstod dit spørgsmål før opdateringen, du behøver sandsynligvis ikke dette:

Filstien kan ikke udveksles som andre dataelementer, og du kan ikke bruge en forberedt erklæring til det. Byg helheden sætning, før den udføres eller ty til dynamisk SQL med en server-side funktion 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 til:

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

format() kræver Postgres 9.1 eller nyere.




  1. Sådan sammenkædes streng- og NULL-værdier i SQL Server

  2. MySQL/skrivefilfejl (fejlkode 28)

  3. Hvordan udfører jeg en IF...THEN i en SQL SELECT?

  4. SQL INSERT-syntaks – Listet af DBMS