एक अस्पष्ट शीर्षक का थोड़ा सा, मैं समझाऊंगा।एसक्यूएल स्क्रिप्ट सम्मिलित स्क्रिप्ट बनाने के लिए
मैं अपने डेटाबेस में किसी तालिका की प्रत्येक पंक्ति के लिए एक सम्मिलन कथन बनाने के लिए एक SQL स्क्रिप्ट लिख रहा हूं, पूरी तरह से उस डेटा को किसी अन्य डेटाबेस पर लागू करने में सक्षम होने के लिए।
यहाँ मैं इस समय है:
SELECT 'INSERT INTO products (id,name,description) VALUES ('||ID||','''||name||''','''||description||''');' FROM products
और यह महान काम करता है, इस outputting:
INSERT INTO products (id,name,description) VALUES (1,'Lorem','Ipsum');
INSERT INTO products (id,name,description) VALUES (2,'Lorem','Ipsum');
INSERT INTO products (id,name,description) VALUES (3,'Lorem','Ipsum');
INSERT INTO products (id,name,description) VALUES (4,'Lorem','Ipsum');
यदि फ़ील्ड खाली है उस पंक्ति को असफल हो जायेगी समस्या है एक अद्यतन स्क्रिप्ट का उत्पादन, आउटपुट फ़ाइल में लाइन बस खाली है। जाहिर है कि 20+ फ़ील्ड हैं, कुछ वैकल्पिक इसका मतलब है कि मेरी कोई भी स्क्रिप्ट उत्पन्न नहीं होती है।
क्या इस मुद्दे को हल करने का कोई तरीका है?
चीयर्स क्रिस में नया है, यह बहुत अच्छा काम करता है। –
मैं आपको चेतावनी देना चाहता हूं कि यह एसक्यूएल इंजेक्शन से असुरक्षित है। एक कॉलम में एक एकल एस्ट्रोफ़े आपके परिणामी एसक्यूएल को गड़बड़ कर देगा, या आपके डेटाबेस में मनमानी क्वेरी चलाने के लिए हमलावर द्वारा शोषण योग्य हो सकता है। – intgr
यह भी वही सटीक पंक्तियां उत्पन्न नहीं करेगा। ऊपर के रूप में coalesce खाली स्ट्रिंग मान डालने समाप्त हो जाएगा जहां यह नल मान डालना चाहिए। –