PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

SQL के साथ पूर्ण-पाठ फ़ाइलों को कैसे निर्यात करें?

कॉपी करें इसके लिए नहीं बनाया गया है। यह तालिका-संरचित डेटा से निपटने के लिए है, इसलिए यह पंक्तियों और स्तंभों को विभाजित किए बिना काम नहीं कर सकता है; हमेशा कुछ ऐसे अक्षर होंगे जो इससे कॉपी करें विभाजक के रूप में व्याख्या करता है, और जिसके लिए प्रतिलिपि करें अगर यह आपके डेटा में से एक पाता है तो कुछ एस्केप अनुक्रम डालेगा। यदि आप एक सामान्य फ़ाइल I/O सुविधा की तलाश में हैं तो यह बहुत अच्छा नहीं है।

वास्तव में, डेटाबेस सर्वर सामान्य फ़ाइल I/O के लिए डिज़ाइन नहीं किए गए हैं। एक बात के लिए, कुछ भी जो सीधे सर्वर के फाइल सिस्टम के साथ इंटरैक्ट करता है, उसे एक सुपरयूजर भूमिका की आवश्यकता होगी। यदि संभव हो तो, आपको हमेशा की तरह तालिका से पूछताछ करनी चाहिए, और क्लाइंट पक्ष पर फ़ाइल I/O से निपटना चाहिए।

उस ने कहा, कुछ विकल्प हैं:

  • अंतर्निहित pg_read_file() फ़ंक्शन, और pg_file_write() adminpack . से मॉड्यूल, फ़ाइल सिस्टम को सबसे प्रत्यक्ष इंटरफ़ेस प्रदान करते हैं, लेकिन वे दोनों क्लस्टर की डेटा निर्देशिका तक ही सीमित हैं (और मैं वहां यादृच्छिक उपयोगकर्ता-निर्मित फ़ाइलों को संग्रहीत करने की अनुशंसा नहीं करूंगा)।
  • lo_import() और lo_export() एकमात्र अंतर्निहित कार्य हैं जिनके बारे में मुझे पता है कि फ़ाइल I/O के साथ सीधे कौन सा सौदा है और जिनके पास सर्वर की फाइल सिस्टम (होस्ट ओएस द्वारा लगाए गए बाधाओं के भीतर) तक अप्रतिबंधित पहुंच है, लेकिन बड़े ऑब्जेक्ट इंटरफ़ेस विशेष रूप से उपयोगकर्ता के अनुकूल नहीं है ....
  • यदि आप पर्ल (plperlu ) या पायथन (plpythonu ), आप उस भाषा के मूल I/O रूटीन के लिए रैपर फ़ंक्शन लिख सकते हैं।
  • कार्यक्रम में कॉपी करें के माध्यम से आप बहुत कुछ हासिल नहीं कर सकते यदि आप पर्याप्त रूप से निर्धारित हैं - एक के लिए, आप 'mv ' प्रोग्राम के लिए कॉपी (चुनें 1) कर सकते हैं pg_file_write() . की सीमाओं के आसपास काम करने के लिए - हालांकि यह एसक्यूएल और बाहरी उपकरणों के बीच की रेखा को कुछ हद तक धुंधला कर देता है (और जो कोई भी आपका कोडबेस प्राप्त करता है वह संभवतः प्रभावित नहीं होगा...)।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cloud SQL Postgres jdbc के लिए कोई उपयुक्त ड्राइवर नहीं मिला:postgres://google/

  2. PostgreSQL पुनरावर्ती CTE से फ़ंक्शन पर डेटा पास करता है

  3. जब डेटाबेस रिकॉर्ड को पोस्टग्रेज करने के लिए लिखा जाता है, तो शेल स्क्रिप्ट चलाएँ

  4. ORDER और LIMIT क्लॉज के साथ बेहद धीमी PostgreSQL क्वेरी

  5. एंटिटी फ्रेमवर्क 7 में टेबल और प्रॉपर्टीज का केस असंवेदनशील नाम