更新时间:2025-06-04 GMT+08:00

U0400032:GaussDB部分支持Convert函数

描述

数据库类型与版本

  • 源库类型与版本:MySQL 5.5、5.6、5.7、8.0版本。
  • 目标库类型与版本:GaussDB所有版本。

语法示例

GaussDB B兼容模式V2.0-8.0之前的版本不支持CONVERT函数,函数名需要改写,B兼容模式8.0以及M兼容模式开始支持CONVERT函数。

MySQL中CONVERT方法一般有两种用法,用法一是可以将表达式的类型转换为另一个类型,例如:

SELECT CONVERT('123', SIGNED);

在不支持CONVERT函数的版本中这种场景将转换成GaussDB的CAST函数,例如:

SELECT CAST('123' AS BIGINT);

用法二是使用USING子句,用于将一个字符串从一个字符集转换到另一个字符集,例如:

SELECT CONVERT('你好' USING utf8);

在不支持CONVERT函数的版本中这种场景将转换成GaussDB的CONVERT_FROM函数,例如:

SELECT CONVERT_FROM('你好', 'utf8');

但是当转换到GaussDB不支持的类型与字符集上时,UGO将保留CONVERT函数不转换,并生成此错误提示,如下MySQL示例所示,在GaussDB中不支持。

SELECT CONVERT('123', UNSIGNED);
SELECT CONVERT('abc' USING ascii);

即使在支持CONVERT函数的GaussDB版本中,某些类型(UNSIGNED、BINARY)与字符集仍然不支持。GaussDB支持的字符集请参考《GaussDB开发者指南》。

改造建议

暂无方案,建议改造业务。