我有一个SP光标,除了一个数据外,它可以很好地处理所有数据集。此SP在其中嵌套了游标。 光标是这样的:
...
BLOCK1: begin
DECLARE cur1 CURSOR FOR select date, value1, value2 from excel.tc where date >= first_mov and id_fk = idz order by date DESC;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
OPEN cur1;
read_loop_1: LOOP
FETCH cur1 into datez, value1z, value2z;
IF done THEN
'exit loop
...lots of code
END LOOP;
end BLOCK1;
我的嵌套游标遵循相同的模型,打开块并声明游标和处理程序。除了一组特定数据外,SP的工作原理;即使CURSOR FOR SELECT中的所有值都正确(我已经调试过),光标也不会遍历所有行。并且这些数据没有任何不同,除了日期没有按行物理排序。
有什么可能导致这个问题吗?我正在使用MySQL 5.0.26。
**编辑:一些数据来说明:
使用这组数据不工作,光标停在第三行(按日期排序,desc):
date value1 value2 id_fk id
2006-02-17 0.920000 1.000000 12 25
2006-12-22 0.912000 1.000000 12 26
2007-04-24 0.818000 1.000000 12 27
2004-07-30 0.013650 1.000000 12 820
2004-10-30 0.012280 1.000000 12 821
2004-12-31 0.008960 1.000000 12 822
2005-04-16 0.006350 1.000000 12 823
2005-12-23 0.000000 -20.00000 12 824
2005-12-23 0.630000 1.000000 12 825
2003-12-31 0.020480 1.000000 12 826
2004-04-24 0.000850 1.000000 12 827
答案 0 :(得分:0)
我的问题是我有select into var...
返回null
,并被视为处理程序的NOT FOUND
的条件。这是有据可查的,但我错过了它。