इस प्रश्न के भीतर चर्चा की गई कार्यक्षमता दिए गए SQL स्क्रिप्ट को निष्पादित करना है। स्क्रिप्ट की सामग्री को एप्लिकेशन रनटाइम के दौरान उपयोगकर्ता द्वारा परिभाषित किया जाना है। स्क्रिप्ट यह हो सकती है कि एक INSERT
कथन या जटिल PL/SQL
कथन का अनुक्रम हो सकता है या नहीं। चूंकि रनटाइम के दौरान उपलब्ध इनपुट (अंत में स्ट्रिंग इंस्टेंस के रूप में) इसे जावा के माध्यम से निष्पादित किया जाना चाहिए।जावा में SQL स्क्रिप्ट निष्पादन के लिए सामान्य दृष्टिकोण
वर्तमान दृष्टिकोण PreparedStatement
के साथ उपयोगकर्ता इनपुट लपेट रहा है और इसे निष्पादित करने के लिए है। यह समाधान मौजूदा परीक्षण मामलों के लिए काम करता है। मुख्य चिंता उन डेटाबेसों की पूर्ण कार्यक्षमता प्रदान करना है जो परीक्षणों द्वारा कवर नहीं हो सकते हैं, यानी समाधान जो उपयोगकर्ता वेंडर के प्रदत्त कंसोल में समान उपयोगकर्ता SQL स्क्रिप्ट को पास करने के निकटतम है।
मुझे आश्चर्य है कि PreparedStatement
के साथ मौजूदा दृष्टिकोण में कोई सीमा नहीं है? जावा के माध्यम से एसक्यूएल स्क्रिप्ट निष्पादन के लिए कोई बेहतर सामान्य दृष्टिकोण है?
आप वास्तव में क्या करने की कोशिश कर रहे हैं? क्या आप बस सबकुछ चलाने के लिए चाहते हैं, क्या आप http://sqlfiddle.com/ जैसे कुछ बनाने की कोशिश कर रहे हैं? –
क्या सुरक्षा भेद्यताएं यहां एक चिंता हैं? स्क्रिप्ट को संभावित रूप से अवांछित या खतरनाक करने से रोकने के लिए पर्याप्त प्रतिबंध हैं? (उदा। डेटाबेस में उपयोगकर्ता के विशेषाधिकारों के माध्यम से?) –
@SteveChambers में कोई भेद्यता चिंता नहीं है, क्योंकि उपयोगकर्ता अपने डेटाबेस को संशोधित करता है और इसके लिए पूरी तरह उत्तरदायी होता है। मुख्य चिंता डेटाबेस की पूर्ण कार्यक्षमता को सबसे कुशल तरीके से प्रदान करना है। –