2013-04-16 26 views
5

Bu gibi veri şey vardır:CSV metin dizisi 9.2

Akhoond, 1, Akhoond, "{" "Akhund" " "" Ahwan ""}", 0

pgAdmin'in içe aktarması bunu reddediyor. Metnin [] CSV'de hangi biçiminin olması gerekiyor?

Ben de bu çalıştı:

Akhoond, 1, Akhoond, "{Akhund, Ahwan}" Burada

0 tablo oluşturmak oluyor:

CREATE TABLE private."Titles" 
(
    "Abbrev" text NOT NULL, 
    "LangID" smallint NOT NULL REFERENCES private."Languages" ("LangID"), 
    "Full" text NOT NULL, 
    "Alt" text[], 
    "Affix" bit 
) 
WITH (
    OIDS=FALSE 
); 

ALTER TABLE private."Titles" ADD PRIMARY KEY ("Abbrev", "LangID"); 

CREATE INDEX ix_titles_alt ON private."Titles" USING GIN ("Alt"); 

ALTER TABLE private."Titles" 
    OWNER TO postgres; 
+0

Hata iletileri (ler)? –

+0

"Son beklenen sütundan sonra fazladan veri" atıyor. Kontrol ettim ve DB'de 5 sütun, CSV'de 5 sütun var. – IamIC

+1

İstenilen verilerin bir veya iki satırında bir kukla tablo oluşturup, bunu PgAdmin-III'den dışa aktarırsanız ne olur? Hangi format üretiyor ve daha sonra doğru bir şekilde içe aktarılıyor? Dışa aktarılırsa ancak içe aktarılmazsa bir hata buldunuz. Açıkçası sanırım standart 'COPY' komutuyla aynı sözdizimini kullanmazsa bir hatadır. –

cevap

8

iyi Öğrenmek için bir yol oluşturmak için istenen değerleri ve COPY ... TO STDOUT bir tablo oluşturmak için bkz:

craig=> CREATE TABLE copyarray(a text, b integer, c text[], d integer); 
CREATE TABLE 
craig=> insert into copyarray(a,b,c,d) values ('Akhoond',1,ARRAY['Akhund','Akhwan'],0); 
INSERT 0 1 
craig=> insert into copyarray(a,b,c,d) values ('Akhoond',1,ARRAY['blah with spaces','blah,with,commas''and"quotes'],0); 
INSERT 0 1 
craig=> \copy copyarray TO stdout WITH (FORMAT CSV) 
Akhoond,1,"{Akhund,Akhwan}",0 
Akhoond,1,"{""blah with spaces"",""blah,with,commas'and\""quotes""}",0 

"{Akhund,Akhwan}"'un kalitesi iyi görünüyor. Kombinlerin nasıl işleneceğini gösteren ikinci örneği not alın, dizi metnindeki boşlukları tırnak içine alın.

Bu, psql \copy komutuyla çalışır; , PgAdmin-III ile çalışmazsa psql ve \copy kullanmanızı öneririm.

+0

PgAdmin III için çalışır. – pisaruk