如何在DBeaver中执行包含多个变量与运算符的SQL语句?
报错原因
你遇到的语法报错是DBeaver客户端变量解析规则和数据库原生语法冲突导致的:当前使用的${变量名}变量格式,和PostgreSQL等数据库的美元引用语法重叠,多变量场景下解析器会误判变量边界,导致变量没有被正确替换为预设值,最终执行的SQL存在语法错误。
可行解决方案
- 使用DBeaver原生冒号参数格式引用变量
直接用:变量名替代${变量名}即可规避解析冲突,不需要修改原有变量定义逻辑:@set var1 = 'hello'; @set var2 = 'world'; select * from "Table" where col1 = :var1 and col2 = :var2; - 调整变量定义与引用规则
定义变量时不额外加单引号,引用时再用单引号包裹变量,也可以解决解析问题:-- 定义变量时不带引号 @set var1 = hello; @set var2 = world; select * from "Table" where col1 = '${var1}' and col2 = '${var2}';
内容的提问来源于stack exchange,提问作者Moises Nunez
相关产品推荐
相关产品推荐

