2015-05-26 6 views
5

मेरे पास/path/to/query पर स्थित फ़ाइल में एक प्रश्न लिखा गया है। क्वेरी में COPY का उपयोग किये बिना, मैं आउटपुट परिणाम को सीएसवी फ़ाइल में कैसे सहेज सकता हूं? मैंने निम्न आदेश का प्रयास किया, लेकिन आउटपुट फ़ाइल के फ़ील्ड "|" से अलग हो गए।सीएसवी फ़ाइल को psql आउटपुट सहेजना

psql -U username -d dbname -f /path/to/query -o /path/to/output/file -F ',' 

उत्तर

3

यह दस्तावेज में विस्तार से बताया नहीं है, लेकिन -F विकल्प -A विकल्प (असंरेखित तालिका उत्पादन) की आवश्यकता है काम करने के लिए:

psql -U username -d dbname -f /path/to/query -o /path/to/output/file -F ',' -A 

आप नहीं चाहते कि हेडर अपने csv में, इसका मतलब है, शीर्ष पर और नीचे की अतिरिक्त पंक्तियों के बिना, -t विकल्प का भी उपयोग करें।

psql -U username -d dbname -f /path/to/query -o /path/to/output/file -F ',' -A -t 

मदद से:

-एक, --no-संरेखित असंरेखित तालिका उत्पादन मोड
एफ, --field-विभाजक = STRING सेट क्षेत्र विभाजक (डिफ़ॉल्ट: "| ")
-t, - टुप-केवल प्रिंट पंक्तियां केवल

+0

यह काम करता है। यह थोड़ा नाइट-पिक्य है, लेकिन मैं 2 अतिरिक्त लाइनों से कैसे छुटकारा पा सकता हूं: शीर्ष पर "चुनें <यादृच्छिक संख्या>" और "पंक्तियों की पंक्तियां> पंक्तियों की संख्या>" नीचे? –

+0

यदि आप केवल ऊपर और शीर्ष पर अन्य पंक्तियों के बिना, केवल tuples चाहते हैं, तो विकल्प का उपयोग करें: 'psql -U उपयोगकर्ता नाम-डी dbname -f/path/to/query -o/path/to/output/file - एफ ',' -ए-टी '। –

+0

मैंने कोशिश की। मैंने अभी भी "चयन <यादृच्छिक संख्या"> देखा है, हालांकि नीचे पंक्ति पंक्ति गिनती है। –

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