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.