सामान्य तौर पर, चर प्रतिस्थापन मेटा-कमांड (बैकस्लैश से शुरू) के साथ काम करता है, लेकिन \copy
एक अपवाद है, जैसा कि psql के मैनपेज
में प्रलेखित है। :
मैं इस सवाल पर @BaconBits टिप्पणी से असहमत हूं कि plpgsql का EXECUTE
उत्तर हो सकता है। सर्वर-साइड स्टेटमेंट, डायनेमिक या अन्यथा, क्लाइंट-साइड फ़ाइल सिस्टम तक नहीं पहुंचेगा, \copy
के विपरीत . आप COPY
का उपयोग कर सकते हैं इसके बजाय, लेकिन इसके लिए सुपरयुसर होना आवश्यक है और उस फ़ाइल को postgres
. तक पहुंच योग्य होना चाहिए सर्वर पर उपयोगकर्ता।
मेरा मानना है कि \copy
एक चर फ़ाइल नाम से, चर को psql
. से पहले स्क्रिप्ट में अंतःक्षिप्त किया जाना चाहिए इसे पढ़ता है। आप SQL स्क्रिप्ट को शेल स्क्रिप्ट में एकीकृत कर सकते हैं और इसे psql
. पर फीड कर सकते हैं एक पैच करने योग्य यहाँ-स्ट्रिंग के रूप में, या इसे sed
. के माध्यम से फ़िल्टर करें या perl
या कोई समान यूनिक्स-ईश विधि।