मैं csv फ़ाइल इस तरह सामग्री है कि है:सीएसवी फ़ाइल से postgreSQL डेटा लोड करने के लिए सही COPY कमांड जिसमें एकल-उद्धृत डेटा है?
10,53073,0,0,'Y','2008-05-30 21:46:55',0,'2008-05-30 21:48:04',0,53071,2
मैं My_table में csv डेटा लोड करना चाहते हैं।
CREATE TABLE my_table
(
ad_tree_id numeric(10,0) NOT NULL,
node_id numeric(10,0) NOT NULL,
ad_client_id numeric(10,0) NOT NULL,
ad_org_id numeric(10,0) NOT NULL,
isactive character(1) NOT NULL DEFAULT 'Y'::bpchar,
created timestamp without time zone NOT NULL DEFAULT now(),
createdby numeric(10,0) NOT NULL,
updated timestamp without time zone NOT NULL DEFAULT now(),
updatedby numeric(10,0) NOT NULL,
parent_id numeric(10,0),
seqno numeric(10,0),
CONSTRAINT ad_treenodemm_pkey PRIMARY KEY (ad_tree_id , node_id),
CONSTRAINT adtree_adtreenodemm FOREIGN KEY (ad_tree_id)
REFERENCES ad_tree (ad_tree_id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED,
CONSTRAINT ad_treenodemm_isactive_check CHECK (isactive = ANY (ARRAY['Y'::bpchar, 'N'::bpchar]))
)
जब मैं तृतीय उपकरण pgAdmin में इस कमांड चलाएँ:
COPY my_table FROM 'c:\downloads\file.csv' DELIMITERS ',' CSV;
मुझे मिल गया त्रुटि:
ERROR: value too long for type character(1)
CONTEXT: COPY my_table, line 1, column isactive: "'Y'"
तो मैं इस तरह आदेश संशोधित:
COPY my_table FROM 'c:\downloads\file.csv' DELIMITERS ',' CSV QUOTE ''';
COPY my_table FROM 'c:\downloads\file.csv' DELIMITERS ',' CSV QUOTE '\'';
COPY my_table FROM 'c:\downloads\file.csv' DELIMITERS ',' CSV QUOTE '\'' ESCAPE '\';
COPY my_table FROM 'c:\downloads\file.csv' DELIMITERS ',' CSV QUOTE '\'' ESCAPE \;
कोशिश की जब सभी विफल रहे।
तो, कोई भी मुझे इस मामले के लिए सही COPY आदेश दिखा सकता है?
+1 आह! अच्छा काम। – Meem
यदि सीपीवाईआई व्यवस्थापक उपयोगकर्ताओं के लिए आरक्षित है, तो psql कमांड लाइन उपयोग से, \ cOPY my_table से 'c: \ Downloads \ file.csv' DELIMITERS ',' CSV QUOTE '' '; – Tammy
@Tammy '\ copy' को 'psql' क्लाइंट के सापेक्ष पथ मिलते हैं,' COPY' उन्हें सर्वर होस्ट से संबंधित करता है। –