【产品名称】oceanBase 3.1
【产品版本】社区版
【问题描述】执行在mysql可执行的存储过程 创建报错.error 1064
执行SQL:
delimiter ;;
CREATE PROCEDURE
p_order
(in p_pre_id VARCHAR(32))
BEGIN
##定义变量
declare i int DEFAULT 1;
declare done int;
declare p_l int;
declare menuId VARCHAR(32) DEFAULT ‘’;
##创建游标,并存储数据
declare cur_test CURSOR for
SELECT menu_id,d_level from s_menu where pre_id=p_pre_id ORDER BY create_time;
##游标中的内容执行完后将done设置为1
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done=1;
##打开游标
open cur_test;
##执行循环
posLoop:LOOP
##判断是否结束循环
IF done=1 THEN
LEAVE posLoop;
END IF;
##取游标中的值
FETCH cur_test into menuId,p_l;
##执行更新操作
update s_menu set
order
=i where menu_id = menuId;
set i=i+1;
if p_l=0 THEN
CALL p_order(menuId);
end if ;
END LOOP posLoop;
##释放游标
END
;;
delimiter ;
错误:
Error occurred during SQL script execution
原因:
SQL 错误 [1064] [42000]: You have an error in your SQL syntax; check the manual that corresponds to your OceanBase version for the right syntax to use near 'PROCEDURE
p_order
(in p_pre_id VARCHAR(32))
BEGIN
##定义变量 declare ’ at line 1