yukarıdaki cevapları için doğal yollarla çalışması için görünür bir sütuna dahil olmak üzere birden sütunlarda kopyalamaya çalışırsanız o eksik görünüyor benzer şekilde
$ 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"
:
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"
virgül sınırlayıcı bir hstore türüyle ve kullanımı, KOPYA gibi karışır
Bu CSV olarak ithal ve alanını alıntı yaparak, olsa da, sabitlenebilir hstore alınmak üzere: Sadece bu kadar gerekli olan bir CSV olarak ithal CSV biçiminde izin aktaran
$ 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)
ama sen yapabilirsin COPY için DELIMITER ve QUOTE argümanlarını kullanarak alan sınırlayıcı ve alıntı karakterini "," ve "" olmayan değerlere açıkça ayarlayın.