在为嵌入文本查询准备的anrom查询中,参数不会被替换

bttbmeg0  于 2021-07-14  发布在  Java
关注(0)|答案(0)|浏览(120)

我们有一个用例,需要将查询的结果集透视到insert语句的列。为此,我们使用 crosstab 它以文本sql作为参数。
因此,查询在概念上可能如下所示:

insert into table(col1, col2, ...)
select col1, col2, ...
from crosstab($$
  select ....
  where something = {something}
$$)
...

在postgresql客户机中,一切都运行得非常好。
现在,当我们试图用anrom在代码中实现这一点时,它将如下所示:

val sql = $"""
|insert into table(col1, col2, ...)
|select col1, col2, ...
|from crosstab($$$$
|  select ....
|  where something = {something}
|$$$$)
|...
"""

SQL(sql).on("something" -> param).execute()

这应该行得通,但行不通。原因是在这种特殊情况下,内部sql字符串中定义的参数不会被实际值替换。
当然,可以使用字符串插值手工构建sql字符串。但是,我更愿意使用为它构建的工具。
在这种情况下,有什么方法可以使参数替换生效?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题