注册

关于IF(EXP1,EXP2,EXP3)函数的语法解析问题

TrustMe 2024/07/24 756 2

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:V8
【操作系统】:Centos7
【CPU】:
【问题描述】*:关于IF(EXP1,EXP2,EXP3)函数的语法解析问题:
场景:dm工具数据迁移导出存储过程或视图对象sql脚本,其中IF()的使用,导致多个create之间执行错误。具体如下:

脚本语句样例:
CREATE OR REPLACE PROCEDURE "TEST"."p_test1"(...)
AUTHID DEFINER
AS
BEGIN
SELECT IF(IFNULL(EXP1),EXP2,EXP3) AS column1 FROM "TEST"."aaa" ....
END

CREATE OR REPLACE PROCEDURE "TEST"."p_test2"(...)
AUTHID DEFINER
AS
BEGIN
SELECT column2 FROM "TEST"."bbb" where Conditions....
END

此时执行上述语句提示"-2007: 第 n 行, 第 1 列[CREATE]附近出现错误: 语法分析出错"

解决方法:将IF(EXP1,EXP2,EXP3)改成case when语句成功解决

为什么达梦中该函数的迁移会导致这类问题,像在批量结构迁移过程中是否还有类似的函数也会导致问题的出现?

回答 0
暂无回答
扫一扫
联系客服