【YashanDB 知识库】列与存储过程中重名变量 / 别名问题
问题现象
当一条查询中出现了重复别名,或者在一个存储过程中出现了变量名称与查询中别名相同,就会报错。这个问题在多个客户现场出现。
复制代码
问题的风险及影响
风险是会出现一个难以找到为什么的报错,比如找不到 from 之类的问题。
问题影响版本
截止 2024 年 4 月,最新版本依旧有该问题。
问题发生原因
在 verify 的时候,没有做变量分层处理,类似于编译器中变量压栈的操作。
解决方法及规避方式
通过修改变量名称可以临时规避这个问题。
问题分析和处理过程
1、发现编译报错;
2、如果是普通查询,那么寻找其中是否出现了别名相同的表;
3、如果是存储过程,那么需要寻找申请的变量与存储过程中报错语句的列别名是否相同。
经验总结
在写 SQL 的过程中,尽量区别各个变量的名称,防止重名后难以定位。
评论