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'