Những câu trả lời ở trên có vẻ không đầy đủ ở chỗ nếu bạn cố gắng sao chép trong nhiều cột bao gồm một cột với một loại hstore và sử dụng một delimiter dấu phẩy, COPY bị nhầm lẫn, như:
$ cat test
1,a=>1,b=>2,a
2,c=>3,d=>4,b
3,e=>5,f=>6,c
create table b(a int4, h hstore, c varchar(10));
CREATE TABLE;
copy b(a,h,c) from 'test' CSV;
ERROR: extra data after last expected column
CONTEXT: COPY b, line 1: "1,a=>1,b=>2,a"
Tương tự:
copy b(a,h,c) from 'test' DELIMITER ',';
ERROR: extra data after last expected column
CONTEXT: COPY b, line 1: "1,a=>1,b=>2,a"
này có thể được cố định, tuy nhiên, bằng cách nhập như một CSV và trích dẫn lĩnh vực này để được nhập khẩu vào hstore:
$ cat test
1,"a=>1,b=>2",a
2,"c=>3,d=>4",b
3,"e=>5,f=>6",c
copy b(a,h,c) from 'test' CSV;
COPY 3
select h from b;
h
--------------------
"a"=>"1", "b"=>"2"
"c"=>"3", "d"=>"4"
"e"=>"5", "f"=>"6"
(3 rows)
Trích dẫn chỉ được phép ở định dạng CSV, do nhập khẩu như CSV là cần thiết, nhưng bạn có thể đặt rõ ràng dấu phân tách trường và ký tự trích dẫn thành các giá trị không ',' và '' 'bằng cách sử dụng các đối số DELIMITER và QUOTE cho COPY.