MYSQL 存储过程中 执行游标里的动态SQL 如何破?

battier 发布于 2015/12/24 11:19
阅读 1K+
收藏 0

我有一个需求:

   需要执行MYSQL数据库中配置的SQL,不使用JAVA调用,直接在存储过程中使用游标访问,执行动态的结果

在游标遍历循环里写如下代码:

set @V_SQL= CONCAT(' ',V_SQL,' ');
    PREPARE stmt FROM @V_SQL;
    EXECUTE stmt;
    DEALLOCATE PREPARE stmt;

可是执行异常:

错误:1444 SQLSTATE: HY000 (ER_PS_NO_RECURSION) 消息:预处理语句包含引用了相同语句的存储子程序调用。不允许以这类递归方式执行预处理语句。

请问该如何破?!在线等

加载中
0
pleatu
pleatu

set @V_SQL= CONCAT(' ',V_SQL,' ');

V_SQL换个名字,试试

battier
battier
已换了,没用呢
0
猪大宝
猪大宝
你的SQL不是调用存储过程吧
battier
battier
有存储过程 也有DML语句
0
猪大宝
猪大宝
mysql里边好像这样是不行的
猪大宝
猪大宝
回复 @battier : mybatis是直接可以调用存储过程的,看你用的什么框架了,应该是都可以的
battier
battier
那晕了,那只能是用JAVA来调了,JAVA里调用MYSQL存储过程 可以直接执行CALL PROCEDURE_NAME 语句不?
返回顶部
顶部