Thủ tục cursor_defined dùng cursor lấy tên cuối cùng từ bảng student_info:
mysql> SELECT * FROM Student_info; +-----+---------+------------+------------+ | id | Name | Address | Subject | +-----+---------+------------+------------+ | 101 | YashPal | Amritsar | History | | 105 | Gaurav | Chandigarh | Literature | | 125 | Raman | Shimla | Computers | | 127 | Ram | Jhansi | Computers | +-----+---------+------------+------------+
mysql> DELIMITER //
mysql> CREATE PROCEDURE cursor_defined(OUT val VARCHAR(20))
-> BEGIN
-> DECLARE a,b VARCHAR(20);
-> DECLARE cur_1 CURSOR FOR SELECT Name FROM student_info;
-> DECLARE CONTINUE HANDLER FOR NOT FOUND SET b = 1;
-> OPEN CUR_1;
-> REPEAT
-> FETCH CUR_1 INTO a;
-> UNTIL b = 1
-> END REPEAT;
-> CLOSE CUR_1;
-> SET val = a;
-> END//
Query OK, 0 rows affected (0.04 sec)
Gọi thủ tục:
mysql> CALL cursor_defined2(@val); Query OK, 0 rows affected (0.11 sec) mysql> SELECT @val; +------+ | @val | +------+ | Ram | +------+
Cursor duyệt qua tất cả tên, biến a giữ giá trị cuối cùng ('Ram') sau khi loop kết thúc.