PgJDBC COPY
का समर्थन नहीं करता सीधे, लेकिन यह CopyManager
. के माध्यम से करता है एपीआई आप PGConnection
. से प्राप्त कर सकते हैं java.sql.Connection
का इंटरफ़ेस पीजीजेडीबीसी द्वारा लौटाया गया।
दुर्भाग्य से, आप उस साधारण SQL फ़ाइल से उपयोग नहीं कर सकते जहाँ आप COPY
mix मिलाते हैं अन्य आदेशों के साथ संचालन।
व्यक्तिगत रूप से, मैं psql
. को खोलूंगा चलाने के लिए .sql
चींटी का उपयोग करने वाली फ़ाइलें <exec>
काम। इस तरह आप COPY
. शामिल कर सकते हैं आपकी SQL फ़ाइलों में डेटा इन-लाइन।
यह अच्छा होगा कि PgJDBC को COPY
को संभालने के लिए सक्षम किया जाए , लेकिन यह आसान नहीं है। यह प्रभावी रूप से PostgreSQL में एक अलग प्रोटोकॉल मोड है, और इसके लिए सामान्य JDBC इंटरफेस का उपयोग करने के लिए तैयार बयानों, निष्पादित, आदि के साथ उपयोग करने का कोई मतलब नहीं है। हम एक execSQLScript
प्रदान कर सकते हैं कस्टम PGconnection
. पर लेकिन इससे आपको ज्यादा मदद नहीं मिलेगी क्योंकि चींटी की <sql>
. जैसी चीजें कार्य इसका उपयोग नहीं करेगा। आपको एक कस्टम कार्य लिखना होगा।
इसके बजाय, PgJDBC को ग्राहकों से काफी झूठ बोलना होगा - जब यह COPY
. दर्ज किया गया था एक COPY
. के बाद मोड आदेश, इसे जेडीबीसी स्पेक को अनदेखा करना होगा और जेडीबीसी कथन निष्पादन के जवाब में वास्तव में ऐसा नहीं करना चाहिए था। इससे सभी प्रकार की चीजों के टूटने की संभावना होगी।
तो - अभी के लिए, अब तक का सबसे आसान विकल्प केवल psql
. को निष्पादित करना है आप जो चाहते हैं उसे करने का आदेश दें।