@ajmalmhd04 पर आपकी टिप्पणी का अंश answer
हां, दस्तावेज़ीकरण यह उपयोगकर्ता द्वारा परिभाषित ऑपरेटरों को परिभाषित करने के तरीके में थोड़ा भ्रमित करने वाला है, विशेष रूप से इस भाग:
दुर्भाग्य से, इसका मतलब है कि आप उपयोगकर्ता-परिभाषित ऑपरेटरों का उपयोग कर सकते हैं जहां (ज्यादातर) आप अंतर्निहित ऑपरेटरों का उपयोग कर सकते हैं, लेकिन उसी तरह नहीं (operand1 OPERATOR operand2
उदाहरण के लिए) आप अंतर्निहित ऑपरेटरों का उपयोग करते हैं, जैसे <
या =
. उपयोगकर्ता-परिभाषित ऑपरेटर, यदि उन्हें बहुत करीब से नहीं देखते हैं, तो वे (ऑपरेटर) केवल डीएमएल स्टेटमेंट में उपयोग किए जा सकते हैं (select
) फ़ंक्शन को कॉल करने के अलग-अलग तरीके हैं। , insert
इत्यादि)। आप उन्हें पीएल/एसक्यूएल में सीधे डीएमएल के माध्यम से उपयोग करने में सक्षम नहीं होंगे। इसलिए, पीएल/एसक्यूएल में ऐसा कुछ परिणाम PLS-00548: invalid use of operator.
if operator(<<arguments>>) = 1 then
-- something
end if;
ऑपरेटरों को बनाने और उपयोग करने के लाभ, यदि आप एप्लिकेशन विशिष्ट सर्वर-आधारित एक्सटेंशन (डेटा कार्ट्रिज) विकसित करने में शामिल नहीं हैं, उदाहरण के लिए इंडेक्सटाइप, जो मुझे व्यक्तिगत रूप से दिखाई नहीं दे रहे हैं। ऐसी स्थिति के बारे में नहीं सोच सकते जहां आप ऑपरेटरों का उपयोग कर सकते हैं और कार्यों का उपयोग नहीं कर सकते हैं। हालांकि, विपरीत सच नहीं है। आप इसे ओवरलोडेड फ़ंक्शन के रूप में उपयोग करने के तरीके के रूप में ऑपरेटर की एकाधिक बाइंडिंग रखने की क्षमता को देख सकते हैं। लेकिन, दूसरी ओर, आप पैकेज के साथ इसे आसानी से प्राप्त कर सकते हैं।