नामित पाइप का उपयोग करने के लिए एक पुरानी चाल है (यूनिक्स पर काम करता है, विंडोज़ के बारे में नहीं जानता)
- एक नामित पाइप बनाएं:
mkfifo /tmp/omyfifo
- इसमें फ़ाइल सामग्री लिखें:
zcat mycsv.csv.z > /tmp/omyfifo &
- [psql से]
copy mytable(col1,...) from '/tmp/omyfifo'
- [समाप्त होने पर] :
rm /tmp/omyfifo
zcat
बैकगाउंड में एक पाठक तक ब्लॉक रहेगा (यहां:COPY
कमांड) पढ़ना शुरू कर देगा, और यह ईओएफ पर समाप्त होगा। (या अगर पाठक पाइप बंद कर देता है)
आप कई पाइप+zcat जोड़े भी शुरू कर सकते हैं, जिन्हें कई COPY
. द्वारा उठाया जाएगा आपकी sql स्क्रिप्ट में स्टेटमेंट।
यह pgadmin से काम करेगा, लेकिन फीफो (+zcat प्रक्रिया) उस मशीन पर मौजूद होनी चाहिए जहां DBMS सर्वर चलता है।
बीटीडब्लू:नेटकैट का उपयोग करने वाली एक समान चाल का उपयोग रिमोट मशीन से फ़ाइल को पढ़ने के लिए किया जा सकता है (जो निश्चित रूप से फ़ाइल को नेटवर्क सॉकेट में लिखना चाहिए)