为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【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语句成功解决
为什么达梦中该函数的迁移会导致这类问题,像在批量结构迁移过程中是否还有类似的函数也会导致问题的出现?

源端数据库是什么?