वास्तव में, जब पार्सर किसी ऐसे शब्द का सामना करता है जो बिल्ट-इन फंक्शन का नाम है, तो उसे यह निर्धारित करना होगा कि क्या नाम फंक्शन कॉल को दर्शाता है या टेबल या कॉलम नाम जैसे पहचानकर्ता के लिए नॉन-एक्सप्रेशन संदर्भ है। निम्नलिखित क्वेरीज पर विचार करें:
1. SELECT SUM(salary) FROM employee; 2. CREATE TABLE sum (i int);
पहली क्वेरी में SUM फंक्शन कॉल का संदर्भ है और दूसरी क्वेरी में यह टेबल नाम का संदर्भ है।
पार्सर यह अंतर करने के लिए निम्नलिखित नियमों का पालन करता है कि उनके नामों का उपयोग फंक्शन कॉल के रूप में किया जा रहा है या नॉन-रेफरेंस संदर्भ में पहचानकर्ता के रूप में:
- नियम 1 - एक्सप्रेशन में नाम को फंक्शन कॉल के रूप में उपयोग करने के लिए, नाम और अगले ( पैरेंथेसिस वर्ण के बीच कोई व्हाइटस्पेस नहीं होना चाहिए।
- नियम 2 - इसके विपरीत, फंक्शन नाम को पहचानकर्ता के रूप में उपयोग करने के लिए, इसके तुरंत बाद पैरेंथेसिस नहीं होना चाहिए।