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

How to escape question mark (?) character in PDI Pentaho in a query

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

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

问题是第一个问号对应于我从上一步获得的参数,但第二个问号对应于 URL,因此需要按原样保存。这使得作业因 IndexOutOfBounds 异常而失败,因为 kettle 使用 url 问号,就好像它是参数一样。

我试过如下越狱没有结果:

但是没有人工作

最后我决定在前面的步骤中创建一个 url 参数,然后按如下方式使用它:

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

这行得通,但我仍然想知道是否有办法转义这个字符。

这个长期存在的问题来自 preparedStement 与 JDBC 的使用,Sun 和 Oracle 都没有解决这个问题。根据 this blog 你的解决方案是最好的。