如何在查询中转义 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 你的解决方案是最好的。
我正在尝试在 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 你的解决方案是最好的。