在MS-SQL中,很容易实现,而在MYSQL怎么这么麻烦?看说明,好象MYSQL5已经支持了呀。
以下代码有错误吗?delimiter //
CREATE PROCEDURE `testproc`(IN jjrbh varchar(8))
BEGIN
declare khbh varchar(8);
declare khxm varchar(20);
declare done1 int default 0;
declare done2 int default 0; declare branch_cur cursor
for
select fkhbh from j_jjdygx where fjjrbh=jjrbh;
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done1 = 1;open branch_cur; REPEAT
FETCH branch_cur into khbh;
IF (not done1) THEN
begin
declare customer_cur cursor
for
select fkhxm from k_khxx where fkhbh=khbh;
declare continue handler for sqlstate '02000' set done2=1;
open customer_cur cursor
repeat
fetch customer_cur into khxm
if (not done2) then
insert into temp values(khxm);
end if;
until done2
end repeat;
close customer_cur;
end;
END IF;
UNTIL done1
END REPEAT;
close branch_cur;
END //
delimiter ;
以下代码有错误吗?delimiter //
CREATE PROCEDURE `testproc`(IN jjrbh varchar(8))
BEGIN
declare khbh varchar(8);
declare khxm varchar(20);
declare done1 int default 0;
declare done2 int default 0; declare branch_cur cursor
for
select fkhbh from j_jjdygx where fjjrbh=jjrbh;
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done1 = 1;open branch_cur; REPEAT
FETCH branch_cur into khbh;
IF (not done1) THEN
begin
declare customer_cur cursor
for
select fkhxm from k_khxx where fkhbh=khbh;
declare continue handler for sqlstate '02000' set done2=1;
open customer_cur cursor
repeat
fetch customer_cur into khxm
if (not done2) then
insert into temp values(khxm);
end if;
until done2
end repeat;
close customer_cur;
end;
END IF;
UNTIL done1
END REPEAT;
close branch_cur;
END //
delimiter ;
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货