Bug #24140 MySQL Cursor creation
Submitted: 9 Nov 2006 12:55 Modified: 9 Nov 2006 14:16
Reporter: Uma Anand Ilango Email Updates:
Status: Not a Bug Impact on me:
None 
Category:MySQL Server Severity:S3 (Non-critical)
Version:5.0.1 OS:
Assigned to: CPU Architecture:Any
Tags: MySql Cursor Declaration

[9 Nov 2006 12:55] Uma Anand Ilango
Description:
Hi, 
I am trying to create a cursor with a select statement. I need to create a cursor to retrieve all employees belonging to a specific manager.

I have a cursor which has all the managers list. The statements are as below.

How to repeat:
DELIMITER $$

CREATE PROCEDURE `Invoke`()
BEGIN
DECLARE cur1 CURSOR FOR SELECT Id FROM Managers;
DECLARE done INT DEFAULT 0;
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
DECLARE MgrId varchar(50);
DECLARE EmpId varchar(50);

OPEN cur1;

	REPEAT
        FETCH cur1 INTO MgrId;
		IF NOT done THEN
			<UPDATE Statement on Mgr table>
						
			DECLARE cur2 CURSOR FOR SELECT Id FROM Employees Where Id in (SELECT EmployeeId from ManagerEmployeeMapping where ManagerId = MgrId);

			OPEN cur2;
                        REPEAT
				FETCH cur2 into EmpId;
				IF NOT done THEN
					<UPDATE Statement on Emp Table>
				END IF;
			UNTIL done END REPEAT;	
			CLOSE cur2;
                 END IF;
	UNTIL done END REPEAT;
	CLOSE cur1;
END$$

DELIMITER;

Suggested fix:
Some suggest if there is a fix to this problem.
[9 Nov 2006 14:16] Valeriy Kravchuk
We're sorry, but the bug system is not the appropriate forum for asking help on using MySQL products. Your problem is not the result of a bug. Please, read the manual on possible reasons for your problem:

http://dev.mysql.com/doc/refman/5.0/en/declare.html

Support on using our products is available both free in our forums at http://forums.mysql.com/ and for a reasonable fee direct from our skilled support engineers at http://www.mysql.com/support/

Thank you for your interest in MySQL.