2013-04-16 9 views
5

मैं इस तरह डेटा कुछ है:CSV आयात पाठ सरणी 9.2

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

pgAdmin का आयात इसे अस्वीकार कर रहा है। सीएसवी में टेक्स्ट [] को किस प्रारूप में होना चाहिए?

मैं भी इस की कोशिश की:

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

यहाँ तालिका बनाने रहा है:

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

त्रुटि संदेश (ओं)? –

+0

यह "अंतिम अपेक्षित कॉलम के बाद अतिरिक्त डेटा" फेंक रहा है। मैंने जांच की है और डीबी में 5 कॉलम हैं, और सीएसवी में 5 हैं। – IamIC

+1

क्या होगा यदि आप एक पंक्ति या दो वांछित डेटा के साथ एक डमी टेबल बनाते हैं, तो इसे PgAdmin-III से निर्यात करें? यह किस प्रारूप का उत्पादन करता है, और फिर यह सही तरीके से आयात करता है? यदि यह निर्यात करता है लेकिन आयात नहीं करता है तो आपको एक बग मिला है। स्पष्ट रूप से मुझे लगता है कि यह एक बग है अगर यह वही वाक्यविन्यास का उपयोग मानक 'COPY' कमांड के रूप में नहीं करता है। –

उत्तर

8
सबसे अच्छा

पता लगाने का तरीका वांछित मानों के साथ एक टेबल बनाना और COPY ... TO STDOUT देखने के लिए है:

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}" ठीक है। दूसरे उदाहरण को नोट करें जो मैंने दिखाया है कि कॉमा को कैसे संभालना है, सरणी पाठ में रिक्त स्थान उद्धृत करें।

यह psql \copy कमांड के साथ काम करता है; यदि यह PgAdmin-III के साथ काम नहीं करता है तो मैं psql और \copy का उपयोग करने का सुझाव दूंगा।

+0

यह पीजीएडमिन III के लिए काम करता है। – pisaruk

संबंधित मुद्दे