为啥跑不通 求助
DELIMITER $$
BEGIN 
DECLARE lv_selectsql text;
DECLARE lv_countflag DECIMAL;
SELECT COUNT(1) INTO lv_countflag
FROM r_check_config_cq;
SET @check_flag = 0;
WHILE @check_flag < lv_countflag DO
DECLARE cv_selectsql CURSOR FOR
SELECT a.selectsql
FROM r_check_config_cq a;
OPEN cv_selectsql;
FETCH cv_selectsql INTO lv_selectsql;
CLOSE cv_selectsql;
SET @selectsql = CONCAT('INSERT INTO r_check_report_cq ',lv_selectsql);
SELECT @selectsql;
PREPARE s FROM @selectsql;
EXECUTE s;
DEALLOCATE PREPARE s;
SET @check_flag = @check_flag + 1;
END WHILE;
END
$$
DILIMITER ;

解决方案 »

  1.   

    用的那个表是一个统计SQL的表格,在公司是JAVA代码调用的,想着能不能用存储过程试下结果失败了
      

  2.   

    qq_32144147
    本版等级:T1
    结帖率:0%
      

  3.   

    错误信息是什么?如果这个脚本是在 JAVA 中执行,应该不要 DELIMITER,这个是 mysql 自己的工具能识别的
      

  4.   

    [SQL] BEGIN 
    DECLARE lv_selectsql text;
    [Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DECLARE lv_selectsql text' at line 2 是这样的
      

  5.   

    是在MYSQL中执行的
      

  6.   

    create procedure 哪儿去了?MYSQL中不支持匿名块。
      

  7.   

    你好,创建是有的 我是用NAVICAT在FUNCTION里设计复制的 在版面加的DEMITER 然后忘记加create procedure了 感觉没有写错 不知道为什么跑不通 麻烦帮我看下