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

Pl/pgsql関数のCOPYステートメントを使用して診断を取得する

    これで、GET DIAGNOSTICは、Pl/Pgsql関数のCOPYステートメントによって処理された行数を返します。
    Pl / Pgsql関数のCOPYステートメント:

    CREATE OR REPLACE FUNCTION public.copy_data(fname text) RETURNS integer
    AS
    $$
    declare
    copy_qry text;
    cnt integer;
    Begin
    copy_qry := 'copy t from'||quote_literal(fname)||' with CSV HEADER;';
    Execute copy_qry;
    GET DIAGNOSTICS cnt = ROW_COUNT;
    return cnt;
    end;
    $$ Language plpgsql;

    以前のリリース:

    -bash-4.1$ psql
    psql.bin (9.2.3)
    Type "help" for help.

    postgres=# select copy_data('/usr/local/pg93beta/t_load.csv');
    copy_data
    -----------
    0
    (1 row)
    >

    PostgreSQL9.3の場合

    -bash-4.1$ ./psql -p 5555
    psql (9.3beta1)
    Type "help" for help.

    postgres=# select copy_data('/usr/local/pg93beta/t_load.csv');
    copy_data
    -----------
    3
    (1 row)
    or
    -bash-4.1$ ./psql -p 5555 -c "select copy_data('/usr/local/pg93beta/t_load.csv');"
    copy_data
    -----------
    3
    (1 row)

    著者のおかげで、スクリプトを使用してデータをロードする場合はシンプルですが非常に効果的であり、COPYステートメントによって処理される行数を知りたいと考えています。


    1. テスト用のDBCCCLONEDATABASEとクエリストアの使用

    2. listunagg関数?

    3. Ubuntu18.04にNextcloud15をインストールする方法

    4. MySQLで過去1か月のデータを取得する方法