请问如何在存储过程中动态创建游标?
在网上打了一些代码,代没法运行

解决方案 »

  1.   

    DECLARE cursor1 CURSOR
    FOR
    Select * from table1这个是正常的创建,但如果Select * from table1要跟据我传入的参数的决定要取哪些数据应该好何写?
      

  2.   


    DECLARE cursor1 CURSOR
    FOR
    Select * from table1 where 条件列=传入的变量
      

  3.   

    参考例子:DELIMITER $$DROP PROCEDURE IF EXISTS `GETNEXTDAT` $$
    CREATE DEFINER=`cessoftuser`@`%` PROCEDURE `GETNEXTDAT`(
    vMCNO VARCHAR(20),
    vDATE VARCHAR(8),
    vDIRECTION TINYINT(3),
    OUT vWANTEDDATE VARCHAR(8))
    BEGINDECLARE done INT DEFAULT 0;
    DECLARE INUMBER INT;DECLARE ADJUST_BY_MC CURSOR FOR
      SELECT MCDAT FROM mcrec
        WHERE MCNO=vMCNO AND MCDAT>=vDATE AND MCFLG=0
        ORDER BY MCDAT;DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;OPEN ADJUST_BY_MC;
    SET INUMBER=1;
    SET vWANTEDDATE=vDATE;
    AA: REPEAT
       FETCH ADJUST_BY_MC INTO vWANTEDDATE;
       IF NOT done THEN
          IF INUMBER=ABS(vDIRECTION) THEN LEAVE AA; END IF;
          SET INUMBER=INUMBER+1;
       END IF;
    UNTIL done END REPEAT;
    CLOSE ADJUST_BY_MC;
    /* select vWANTEDDATE; */END $$DELIMITER ;
      

  4.   

    楼主是不是想把创建的游标全动态,就是取的表和栏位也不能确定?
    这样的话,我还不敢肯定是不是没有办法。不过,不知道MySql的Exec能否执行,没有试验过。