बाइंड वैरिएबल बाध्यकारी चर के लिए हैं, कोड के बाध्यकारी टुकड़ों के लिए नहीं। विचार यह है कि Oracle किसी क्वेरी या कोड के ब्लॉक को संकलित और कैश कर सकता है और विभिन्न मापदंडों के साथ इसे कई बार निष्पादित कर सकता है।
हालाँकि, आप परिकलित सूत्र को बदलने के लिए पैरामीटर बाइंडिंग का उपयोग करने का प्रयास करते हैं। यह कोड के ब्लॉक को संकलित और कैशिंग करने से रोकेगा और इस प्रकार समर्थित नहीं है।
इसके अलावा, इसे वर्तमान सिंटैक्स के साथ व्यक्त नहीं किया जा सकता है। अगर Oracle tmp := :f
. देखता है ऐसा लगता है कि आप सरल पैरामीटर f
असाइन करना चाहते हैं चर के लिए tmp
. यह किसी फ़ंक्शन का मूल्यांकन करने की अपेक्षा नहीं करता है।
बस कामकाजी समाधान के साथ जाओ। यह आखिर काम करता है।