PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

ВЗЕМЕТЕ ДИАГНОСТИКА с израз COPY във функцията Pl/pgsql

Сега GET DIAGNOSTIC ще върне броя на редовете, обработени от оператор COPY във функция Pl/Pgsql.
Изявление COPY във функция Pl/Pgsql:

СЪЗДАДЕТЕ ИЛИ ЗАМЕНЕТЕ ФУНКЦИЯ public.copy_data(fname text) ВРЪЩА цяло число
КАКТО
$$
declare
copy_qry текст;
cnt цяло число;
Започнете
copy_qry :='копирайте t от'||quote_literal(fname)||' с CSV HEADER;';
Изпълнете copy_qry;
ВЗЕМЕТЕ ДИАГНОСТИКА cnt =ROW_COUNT;
връщане cnt;
end;
$$ Език plpgsql;

Предишна версия:

-bash-4.1$ psql
psql.bin (9.2.3)
Въведете "help" за помощ.

postgres=# изберете copy_data('/usr/ local/pg93beta/t_load.csv');
copy_data
----------
0
(1 ред)

В PostgreSQL 9.3

-bash-4.1$ ./psql -p 5555
psql (9.3beta1)
Въведете "help" за помощ.

postgres=# изберете copy_data('/ usr/local/pg93beta/t_load.csv');
copy_data
-----------
3
(1 ред)
или
-bash-4.1$ ./psql -p 5555 -c "изберете copy_data('/usr/local/pg93beta/t_load.csv');"
copy_data
----- ------
3
(1 ред)

Благодарение на автора, изглежда просто, но много ефективно, когато работите със зареждане на данните с помощта на скриптове и искате да знаете броя на редовете, обработени от оператора 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. Как да управлявате вашите PostgreSQL бази данни от ClusterControl CLI

  2. Postgresql:Скриптове за изпълнение на psql с парола

  3. Използване на криптиране за засилване на сигурността на базата данни на PostgreSQL

  4. SSL за възли за PostgreSQL връзка

  5. INSERT a SELECT GROUP BY :повече целеви колони, отколкото изрази грешка