如何在查询中的PDI Pentaho中转义问号(?)字符

时间:2018-09-13 09:40:57

标签: kettle pdi

我正在尝试在“执行SQL语句”步骤中的PDI 7.1中执行以下查询。

update table_x set text = '? rows where update using https://example.net?param=1' where 1=1

问题在于,第一个问号对应于我从上一步获得的参数,而第二个问号对应于URL,因此需要按原样保存。这会使作业失败并出现IndexOutOfBounds异常,因为水壶将URL问号当作参数来使用。

我试图逃脱如下,但没有结果:

  • \?
  • ??
  • (?)

但没有人起作用。

最后,我决定在上一步中创建一个url参数,然后按如下所示使用它:

update table_x set text = '? rows where update using ?' where 1=1

这行得通,但是我仍然想知道是否有办法逃脱这个角色。

1 个答案:

答案 0 :(得分:1)

这个长期存在的问题来自Sun和Oracle都从未解决过的将prepareStement与JDBC一起使用。根据{{​​3}},您的解决方案是最好的。