Et hurtigt hacket eksempel ved hjælp af PLPGSQL
i stedet for SQL
.
Advarsel:skal oprettes som en superbruger.
Erstat forespørgslen osv. i funktionen til det, du har brug for, og du kan tilføje flere inputparametre til funktionen for at oprette din forespørgsel eller outputfil(er) forskelligt afhængigt af, hvad disse inputparametre er.
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');
Resulterer i en fil som '/path/to/the/file/some_test_file_994216.csv'