最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

MySQL存储过程错误Nodata_MySQL

来源:懂视网 责编:小采 时间:2020-11-09 17:55:11
文档

MySQL存储过程错误Nodata_MySQL

MySQL存储过程错误Nodata_MySQL:刚好一个案例需要在写存储过程,但是总是报错No data - zero rows fetched, selected, or processed存错过程代码如下DELIMITER $$DROP PROCEDURE IF EXISTS `jbpm`.`refreshRoster` $$CREATE DEFINER=`root`@`
推荐度:
导读MySQL存储过程错误Nodata_MySQL:刚好一个案例需要在写存储过程,但是总是报错No data - zero rows fetched, selected, or processed存错过程代码如下DELIMITER $$DROP PROCEDURE IF EXISTS `jbpm`.`refreshRoster` $$CREATE DEFINER=`root`@`

刚好一个案例需要在写存储过程,但是总是报错No data - zero rows fetched, selected, or processed

存错过程代码如下

DELIMITER $$
DROP PROCEDURE IF EXISTS `jbpm`.`refreshRoster` $$
CREATE DEFINER=`root`@`%` PROCEDURE `refreshRoster`(in hostname varchar(30))
BEGIN
DECLARE uname varchar(30);
DECLARE cur1 CURSOR FOR SELECT username FROM ofuser;


delete from ofroster;
OPEN cur1;
read_loop: LOOP
FETCH cur1 INTO uname;
update temp set TEXT_='1';
......
END LOOP;
CLOSE cur1;
END $$

DELIMITER ;

修改后

DELIMITER $$

DROP PROCEDURE IF EXISTS `jbpm`.`refreshRoster` $$
CREATE DEFINER=`root`@`%` PROCEDURE `refreshRoster`(in hostname varchar(30))
BEGIN
DECLARE i int;
DECLARE tc int;
DECLARE flag int;
DECLARE uname varchar(30);
DECLARE cur1 CURSOR FOR SELECT username FROM ofuser;
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET flag = 3;
SELECT count(*) into tc FROM ofuser;
delete from ofroster;
SET i=0;
OPEN cur1;
read_loop: LOOP
FETCH cur1 INTO uname;
update temp set TEXT_='1';
IF i > tc THEN
LEAVE read_loop;
ELSE
.......
END IF;
SET i=i+1;
END LOOP;
CLOSE cur1;
END $$

DELIMITER ;

增加了红色语句部分,我创建一个表temp,仅一个字段,然后每次循环时更新一下,这样就不会报错。其中使用了i和tc,因为我发现单纯使用FETCH,并不会退出循环,可能是死循环。

文档

MySQL存储过程错误Nodata_MySQL

MySQL存储过程错误Nodata_MySQL:刚好一个案例需要在写存储过程,但是总是报错No data - zero rows fetched, selected, or processed存错过程代码如下DELIMITER $$DROP PROCEDURE IF EXISTS `jbpm`.`refreshRoster` $$CREATE DEFINER=`root`@`
推荐度:
标签: 错误 存储 error
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top