หากเราต้องการใช้ Prepared Statements ใน Stored Procedure มันต้องเขียนภายในบล็อก BEGIN และ END เพื่อเข้าใจ เราสร้างตัวอย่างที่เราสามารถดึงข้อมูลทั้งหมดจากตารางโดยส่งชื่อตารางเป็นพารามิเตอร์ของ Stored Procedure
ตัวอย่าง
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)
ตอนนี้ เรียก Procedure นี้โดยให้ชื่อตารางเป็นพารามิเตอร์ และมันจะแสดงข้อมูลทั้งหมดของตารางนั้น
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)