तालिका और स्तंभ नामों को बाइंड चर के रूप में पारित नहीं किया जा सकता है, नहीं। बाइंड वेरिएबल्स का पूरा बिंदु यह है कि ओरेकल स्टेटमेंट के लिए एक बार क्वेरी प्लान तैयार कर सकता है और फिर इसे अलग-अलग बाइंड वेरिएबल वैल्यू के साथ कई बार निष्पादित कर सकता है। अगर ऑप्टिमाइज़र को पता नहीं है कि कौन सी टेबल एक्सेस की जा रही है या कौन से कॉलम चुने और फ़िल्टर किए जा रहे हैं, तो यह क्वेरी प्लान जेनरेट नहीं कर सकता है।
यदि आपकी चिंता SQL इंजेक्शन हमलों से संबंधित है, और यह मानते हुए कि डायनेमिक SQL वास्तव में आवश्यक है (अधिकांश समय, डायनेमिक SQL का सहारा लेने की आवश्यकता डेटा मॉडल के साथ समस्याओं का अर्थ है), तो आप DBMS_ASSERT
का उपयोग कर सकते हैं। पैकेज यह सत्यापित करने के लिए कि तालिका नाम और स्तंभ नामों में एम्बेडेड SQL नहीं है।