存储过程错误怎么解决(存储过程错误怎么办)

lxf2023-12-13 02:50:02

只是一个case需要写一个存储过程,但是总是给出错误。提取、选择或处理无数据零行的代码如下

分隔符$ $
DROP PROCEDURE IF EXISTS ` jbpm `` refresh roster `$
CREATE DEFINER = ` root `@ `% ` PROCEDURE ` refresh roster `(在hostname varchar(30)中)
BEGIN
DECLARE uname varchar(30);
为从ofuser中选择用户名声明cur1游标;


从ofroster中删除;
OPEN cur 1;
read_loop: LOOP
将cur1取入uname
update temp set TEXT _ = ' 1 ';
......
结束循环;
关闭cur1
END $ $

分隔符;

修改

分隔符$ $

DROP PROCEDURE IF EXISTS ` jbpm ` . ` refresh roster ` $
CREATE DEFINER = ` root `@ `% ` PROCEDURE ` refresh roster `( in hostname varchar(30))
BEGIN
DECLARE I int;
声明tc int
声明标志int
声明uname varchar(30);
为从ofuser中选择用户名声明cur1游标;
声明SQLSTATE '02000' SET flag = 3的CONTINUE处理程序;
SELECT count(*)into TC FROM of user;
从ofroster中删除;
设置I = 0;
OPEN cur 1;
read_loop: LOOP
将cur1取入uname
update temp set TEXT _ = ' 1 ';
如果i > tc那么
离开read _ loop
否则
.......
END IF;
SET I = I+1;
结束循环;
关闭cur1
END $ $

分隔符;添加了红色语句部分,我创建了一个表temp,只有一个字段,然后在每次循环时更新它,这样我就不会报告错误。使用了I和tc,因为我发现单纯使用FETCH是不会退出循环的,这可能是一个无限循环。

adminjs.cn是一个以CSS、JavaScript、Vue、HTML为核心的前端开发技术网站。我们致力于为广大前端开发者提供专业、全面、实用的前端开发知识和技术支持。 在本网站中,您可以学习到最新的前端开发技术,了解前端开发的最新趋势和最佳实践。我们提供丰富的教程和案例,让您可以快速掌握前端开发的核心技术和流程。 Adminjs.cn还提供一系列实用的工具和插件,帮助您更加高效地进行前端开发工作。我们提供的工具和插件都经过精心设计和优化,可以帮助您节省时间和精力,提升开发效率。 在Adminjs.cn中,您可以找到您需要的一切前端开发资源,让您成为一名更加优秀的前端开发者。欢迎您加入我们的大家庭,一起探索前端开发的无限可能!