PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Simpan output dari fungsi sql ke file csv (COPY) dengan nama file dinamis

Contoh yang diretas bersama dengan cepat menggunakan PLPGSQL alih-alih SQL .

Peringatan:harus dibuat sebagai pengguna super.

Ganti kueri dll dalam fungsi ke apa pun yang Anda butuhkan, dan Anda dapat menambahkan lebih banyak parameter input ke fungsi untuk membuat kueri atau file output secara berbeda tergantung pada parameter input tersebut.

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');

Menghasilkan file seperti '/path/to/the/file/some_test_file_994216.csv'




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ketik string ke integer

  2. Catatan tentang Indeks B-Tree PostgreSQL

  3. Isolasi Transaksi di PostgreSQL

  4. Cara Membuat Tabel Hanya jika Tidak Ada di PostgreSQL

  5. Tidak dapat terhubung ke postgres dari host jarak jauh