PowerBI Report Builder中ODBC查询参数@StartDate/@EndDate使用错误求助
解决PowerBI Report Builder连接Progress OpenEdge时参数语法错误问题
问题根源
Progress OpenEdge SQL不支持用@作为参数前缀,你当前SQL里的@StartDate、@EndDate不符合OpenEdge的语法规范,这是触发报错的核心原因。
解决方案
修改SQL语句的参数格式,改用OpenEdge支持的命名参数或位置占位符:
方案1:使用命名参数(推荐,可读性更强)
把SQL中的@StartDate替换为:StartDate,@EndDate替换为:EndDate,修改后的SQL如下:
select stuff from pub.transactions inner join pub.parts on pub.transactions.part=pub.parts.part and pub.transactions.domain = pub.parts.domain where (pub.transactions.date >= :StartDate and pub.transactions.date <= :EndDate)
方案2:使用位置占位符?
如果命名参数仍有问题,可改用位置占位符,需保证数据集参数的顺序和SQL中占位符的顺序完全一致:
select stuff from pub.transactions inner join pub.parts on pub.transactions.part=pub.parts.part and pub.transactions.domain = pub.parts.domain where (pub.transactions.date >= ? and pub.transactions.date <= ?)
后续验证
修改SQL后,回到数据集属性的参数设置界面,确认参数名称(对应命名参数)或顺序(对应位置占位符)与SQL定义匹配,重新运行查询即可。
内容的提问来源于stack exchange,提问作者V.Bean
相关产品推荐
相关产品推荐

