मान लीजिए कि अगर हम BEGIN/END ब्लॉक के अंदर एक वेरिएबल घोषित करते हैं तो इस वेरिएबल का दायरा इस विशेष ब्लॉक में होगा। हम दूसरे BEGIN/END ब्लॉक के अंदर उसी नाम से एक वेरिएबल भी घोषित कर सकते हैं जो पूरी तरह से कानूनी होगा लेकिन इसका दायरा इसके BEGIN/END ब्लॉक के अंदर होगा। इसे निम्नलिखित उदाहरण की मदद से समझा जा सकता है जिसमें हम चरों के दायरे को दिखाने के लिए एक प्रक्रिया बना रहे हैं -
उदाहरण
mysql> Create Procedure Scope_variables() -> BEGIN -> DECLARE A Varchar(5) Default 'outer'; -> BEGIN -> DECLARE A Varchar(5) Default 'inner'; -> SELECT A; -> END; -> SELECT A; -> END; -> // Query OK, 0 rows affected (0.08 sec)
उपरोक्त प्रक्रिया में, हमारे पास एक ही नाम के दो चर हैं अर्थात A. यहां आंतरिक चर घोषणा को प्राथमिकता दी जाती है जब तक कि यह दायरे में है। बात यह है कि पहले END पर पहुंचने पर आंतरिक चर गायब हो जाता है और इसे 'आउट ऑफ स्कोप' कहा जाता है। अवधारणा को समझने के लिए इस प्रक्रिया को निम्नानुसार लागू करें -
mysql> CALL Scope_variables(); +-------+ | A | +-------+ | inner | +-------+ 1 row in set (0.00 sec) +-------+ | A | +-------+ | outer | +-------+ 1 row in set (0.00 sec) Query OK, 0 rows affected (0.01 sec)