網摘
DELIMITER $$ CREATE DEFINER=`root`@`%` PROCEDURE `sp_pament_TrainFee`() BEGIN /*局部變量的定義 declare*/ declare strYear int; declare strEnrollID int; declare feesum int; declare stop int default 0; declare cur cursor for( select year ,EnrollID ,sum(Fee) from trainmanage where ReturnStatus !=1 group by Year,EnrollID ); /*這把 游標 異常后 捕捉 * 並設置 循環使用 變量 stop 為 null 跳出循環。 */ declare CONTINUE HANDLER FOR SQLSTATE '02000' SET stop = null; /*開游標*/ OPEN cur; /*游標向下走一步,將查詢出來的值付給定義的變量*/ FETCH cur INTO strYear,strEnrollID,feesum; WHILE ( stop is not null) DO update payment set ExpectTrain=feesum where EnrollID = strEnrollID and right(ID,2) =right(strYear,2) ; FETCH cur INTO strYear,strEnrollID,feesum; END WHILE; /*游標向下走一步*/ CLOSE cur; END