sql >> Databáze >  >> RDS >> PostgreSQL

ZÍSKEJTE DIAGNOSTIKU pomocí příkazu COPY ve funkci Pl/pgsql

Nyní GET DIAGNOSTIC vrátí počet řádků zpracovaných příkazem COPY ve funkci Pl/Pgsql.
Příkaz COPY ve funkci Pl/Pgsql:

VYTVOŘIT NEBO NAHRADIT FUNKCI public.copy_data(fname text) VRÁTÍ celé číslo
JAKO
$$
deklarovat
copy_qry text;
cnt integer;
Begin
copy_qry :='copy t from'||quote_literal(fname)||' pomocí CSV HEADER;';
Spustit copy_qry;
ZÍSKAT DIAGNOSTIKU cnt =POČET_ŘÁDKŮ;
return cnt;
end;
$$ Jazyk plpgsql;

Předchozí vydání:

-bash-4.1$ psql
psql.bin (9.2.3)
Nápovědu získáte zadáním „nápovědy“.

postgres=# select copy_data('/usr/ local/pg93beta/t_load.csv');
copy_data
-----------
0
(1 řádek)

V PostgreSQL 9.3

-bash-4.1$ ./psql -p 5555
psql (9.3beta1)
Nápovědu získáte zadáním "help".

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

Díky autorovi to vypadá jednoduše, ale velmi efektivně při práci s načítáním dat pomocí skriptů a chcete znát počet řádků zpracovaných příkazem COPY.


  1. Komentujte postavu/znaky v postgres / postgresql / psql?

  2. SQL Server:VYBERTE pouze řádky s MAX (DATE)

  3. Tipy pro ladění výkonu PostgreSQL

  4. Dvě SQL LEFT JOINS poskytují nesprávný výsledek