文档首页/
数据库和应用迁移 UGO/
用户指南/
语法转换指南/
转换错误码/
MySQL To GaussDB 转换错误码/
U0400006:GaussDB的存储过程中不支持使用SELECT语句进行输出
更新时间:2025-06-04 GMT+08:00
U0400006:GaussDB的存储过程中不支持使用SELECT语句进行输出
描述
数据库类型与版本
- 源库类型与版本:MySQL 5.5、5.6、5.7、8.0版本。
- 目标库类型与版本:GaussDB所有版本。
语法示例
默认情况下,UGO保留存储过程中SELECT输出语句不转换,并生成此错误提示。
GaussDB的存储过程中无法直接使用SELECT查询语句进行输出,如下示例在GaussDB中不支持。
CREATE PROCEDURE demo() AS DECLARE total INT; BEGIN SELECT count(1) INTO total FROM emp_t WHERE deptno = 10; SELECT total; END;
改造建议
方案一:修改“存储过程内输出类型select语句转换”转换配置项,将存储过程中输出的查询语句注释掉。请注意,MySQL存储过程中的SELECT语句返回的结果集可被调用客户端获取,如果选择注释掉该语句,可能会影响调用该存储过程的应用。
方案二:您也可以参考如下示例,将原有返回结果集的SELECT语句改造成存储过程OUT参数的方式,以此来获取预期的输出,请注意这种方式需要修改客户端的调用方式。
CREATE PROCEDURE demo(total OUT INT) AS BEGIN SELECT count(1) INTO total FROM emp_t WHERE deptno = 10; END;
方案三:如果原有的存储过程确实有返回数据的需求,也可以将存储过程改造成存储函数,甚至直接通过改造业务实现原有的逻辑。