Pentaho使用字符串变量查询MySQL报Unknown column错误如何解决
你遇到的报错是因为SQL解析时会把没有加引号的str识别为表的字段名,而你用的str是Pentaho流程里的变量,SQL本身无法直接识别Pentaho的上下文变量。
可以直接用'hello'的具体值完成查询,修改SQL语句为以下内容即可,注意字符串常量需要用单引号包裹:
SELECT col1 FROM table WHERE col2='hello';
如果后续需要动态复用变量不想写死固定值,也可以用Pentaho Execute SQL script步骤支持的变量传参方式实现:
- 方式1:用Pentaho变量替换
勾选步骤配置页的「Replace variables in script(替换脚本中的变量)」选项,SQL语句修改为:
执行时Pentaho会自动把SELECT col1 FROM table WHERE col2='${str}';${str}替换为变量的实际值。 - 方式2:用参数占位符(更安全,避免SQL注入风险)
把SQL语句写为带问号占位符的形式:
然后在步骤的参数配置栏,把你流程中的SELECT col1 FROM table WHERE col2=?;str字段绑定到第一个占位符即可。
内容的提问来源于stack exchange,提问作者stoneage
相关产品推荐
相关产品推荐

