PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

NHẬN CHẨN ĐOÁN với câu lệnh SAO CHÉP trong hàm Pl / pgsql

Bây giờ GET DIAGNOSTIC sẽ trả về số hàng được xử lý bởi câu lệnh COPY trong một hàm Pl / Pgsql.
Câu lệnh COPY trong Hàm Pl / Pgsql:

 TẠO HOẶC THAY THẾ CHỨC NĂNG public.copy_data (fname text) RETURNS integer 
AS
$$
khai báo
copy_qry text;
cnt integer;
Begin
copy_qry:='copy t from' || quote_literal (fname) || ' với CSV HEADER; ';
Thực thi copy_qry;
NHẬN CHẨN ĐOÁN cnt =ROW_COUNT;
return cnt;
end;
$$ Language plpgsql;

Bản phát hành trước:

 -bash-4.1 $ psql 
psql.bin (9.2.3)
Gõ "help" để được trợ giúp.

postgres =# select copy_data ('/ usr / local / pg93beta / t_load.csv ');
copy_data
-----------
0
(1 hàng)

>

Trong PostgreSQL 9.3

 -bash-4.1 $ ./psql -p 5555 
psql (9.3beta1)
Gõ "help" để được trợ giúp.

postgres =# select copy_data ('/ usr / local / pg93beta / t_load.csv ');
copy_data
-----------
3
(1 hàng)
hoặc
-bash-4.1 $ ./psql -p 5555 -c "chọn copy_data ('/ usr / local / pg93beta / t_load.csv');"
copy_data
----- ------
3
(1 hàng)

Cảm ơn tác giả, nó trông đơn giản nhưng rất hiệu quả khi làm việc với việc tải dữ liệu bằng cách sử dụng tập lệnh và muốn biết số hàng được xử lý bởi câu lệnh 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. Cài đặt PostgreSQL trên Docker

  2. Dấu hai chấm (::) ký hiệu trong SQL

  3. Cách INTERSECT hoạt động trong PostgreSQL

  4. Làm cách nào để tôi (hoặc tôi có thể) CHỌN DISTINCT trên nhiều cột?

  5. Làm cách nào để lấy giá trị từ hàng được chèn cuối cùng?