sql >> Databasteknik >  >> RDS >> PostgreSQL

Spara utdata från sql-funktionen till csv-fil (COPY) med dynamiskt filnamn

Ett snabbt hackat exempel med PLPGSQL istället för SQL .

Varning:måste skapas som en superanvändare.

Byt ut frågan etc i funktionen till vad du än behöver, och du kan lägga till fler ingångsparametrar till funktionen för att skapa din fråga eller utdatafil(er) på olika sätt beroende på vad dessa inmatningsparametrar är.

CREATE OR REPLACE FUNCTION copy_out_example ( p_path TEXT, p_filename_prefix TEXT, OUT file_and_path TEXT )
RETURNS TEXT AS
$func$
DECLARE
    qry TEXT;
BEGIN
    file_and_path := RTRIM(p_path,'/') || '/' || p_filename_prefix || '_' || ceil(random() * 1000000)::TEXT || '.csv';

    qry := FORMAT('COPY (select * from pg_catalog.pg_class) TO %L CSV HEADER',file_and_path);
    EXECUTE qry;
END;
$func$ LANGUAGE plpgsql STRICT SECURITY DEFINER;

SELECT copy_out_example('/path/to/the/file','some_test_file');

Resulterar i en fil som '/path/to/the/file/some_test_file_994216.csv'




  1. Topp 5 PostgreSQL-frågeövervakningsverktyg

  2. Bestäm om Oracle-dejten är på en helg?

  3. Installera MySQL på CentOS 7

  4. Varför att använda enhetstester är en stor investering i högkvalitativ arkitektur