PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

GET DIAGNOSTICS z poleceniem COPY w funkcji Pl/pgsql

Teraz GET DIAGNOSTIC zwróci liczbę wierszy przetworzonych przez instrukcję COPY w funkcji Pl/Pgsql.
Oświadczenie COPY w funkcji Pl/Pgsql:

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;

Poprzednia wersja:

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

W PostgreSQL 9.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)

Dzięki autorowi wygląda to prosto, ale bardzo efektywnie podczas pracy z ładowaniem danych za pomocą skryptów i chcesz poznać liczbę wierszy przetwarzanych przez instrukcję COPY.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chmura Barmana – Część 1:Archiwum WAL

  2. Konwertuj zbiór wyników z tablicy SQL na tablicę ciągów

  3. Jak uzyskać listy parametrów funkcji (abym mógł usunąć funkcję)

  4. Policz skumulowaną sumę w Postgresql

  5. java.math.BigInteger nie można rzutować na java.lang.Integer