文档首页/
数据库和应用迁移 UGO/
用户指南/
语法转换指南/
转换错误码/
MySQL To GaussDB 转换错误码/
U0400007:GaussDB的存储过程中不支持通过EXECUTE执行动态SELECT语句进行输出,如果动态语句是SELECT,则有风险
更新时间:2025-06-04 GMT+08:00
U0400007:GaussDB的存储过程中不支持通过EXECUTE执行动态SELECT语句进行输出,如果动态语句是SELECT,则有风险
描述
数据库类型与版本
- 源库类型与版本:MySQL 5.5、5.6、5.7、8.0版本。
- 目标库类型与版本:GaussDB所有版本。
语法示例
默认情况下,UGO转换EXECUTE语句,但是不转换动态SQL语句,遇到EXECUTE语句时将生成此错误提示,用户需要自行评估动态语句是否使SELECT输出语句。
如果GaussDB存储过程中通过EXECUTE执行的动态SQL语句类型是SELECT查询,则也可能存在和U0400006中提到的一样的风险。如下示例:
CREATE PROCEDURE execute_dynamic_demo() AS DECLARE total INT; BEGIN SELECT count(1) INTO total FROM emp_t WHERE deptno = 10; EXECUTE IMMEDIATE 'SELECT total;'; END;
改造建议
请参考U0400006。