sql >> データベース >  >> RDS >> PostgreSQL

SQL関数からの出力を動的ファイル名でcsvファイル(COPY)に保存します

    PLPGSQLを使用した簡単にハッキングされた例 SQLの代わりに 。

    警告:スーパーユーザーとして作成する必要があります。

    関数内のクエリなどを必要なものに置き換えます。関数に入力パラメータを追加して、入力パラメータに応じてクエリまたは出力ファイルを異なる方法で作成できます。

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

    結果は'/path/to/the/file/some_test_file_994216.csv'のようなファイルになります




    1. utf8_general_ciとutf8_unicode_ciの違いは何ですか?

    2. Oracleの一時データのパフォーマンスに関する考慮事項

    3. Oracle DROP TABLE IF EXISTS Alternatives

    4. PostgreSQLで既存のテーブルに自動インクリメントの主キーを追加するにはどうすればよいですか?