यदि हम स्टोर्ड प्रोसीजर में प्रिपेयर्ड स्टेटमेंट्स का उपयोग करना चाहते हैं तो इसे BEGIN और END ब्लॉक के अंदर लिखा जाना चाहिए। इसे समझने के लिए, हम एक उदाहरण बना रहे हैं जिसकी मदद से हम टेबल के नाम को स्टोर्ड प्रोसीजर के पैरामीटर के रूप में पास करके उस टेबल के सभी रिकॉर्ड्स प्राप्त कर सकते हैं।
उदाहरण
mysql> DELIMITER //
mysql> Create procedure tbl_detail(tab_name Varchar(40))
->
BEGIN
SET @A:= CONCAT('Select * from',' ',tab_name);
Prepare stmt FROM @A;
EXECUTE stmt;
END //
Query OK, 0 rows affected (0.00 sec)
अब इस प्रोसीजर को टेबल के नाम को इसके पैरामीटर के रूप में देकर इनवोक करें और यह उस टेबल के सभी रिकॉर्ड्स दिखाएगा।
mysql> DELIMITER;
mysql> CALL tbl_detail('Student');
+------+--------+
| Id | Name |
+------+--------+
| 1 | Ram |
| 2 | Shyam |
| 3 | Gaurav |
+------+--------+
3 rows in set (0.00 sec)
Query OK, 0 rows affected (0.03 sec)