मान लीजिए यदि हम एक 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 तक पहुंचने पर गायब हो जाता है और इसे 'OUT OF SCOPE' कहा जाता है। इस अवधारणा को समझने के लिए इस प्रोसीजर को निम्नानुसार इनवोक करें:
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)