我们有一个用例,需要将查询的结果集透视到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字符串。但是,我更愿意使用为它构建的工具。
在这种情况下,有什么方法可以使参数替换生效?
暂无答案!
目前还没有任何答案,快来回答吧!