【发布时间】:2019-06-10 11:01:43
【问题描述】:
我想使用 JDBC 在 Postgres 中执行以下查询:
with things as (values(1),(2)) select * from things;
所以我的 Java 代码如下所示:
String sql = "with things as (?) select * from things";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setArray(1, conn.createArrayOf("INTEGER", new Integer[]{1, 2});
但这会引发以下错误:
org.postgresql.util.PSQLException: ERROR: syntax error at or near "$1"
【问题讨论】:
-
我不认为你可以在 Java 中使用准备好的语句来做到这一点。但是,更大的问题是您为什么要这样做? SQL 是一种主要用于从已经存在的表中提取数据的语言,而不是真正用于填充它们然后从中进行选择。
标签: postgresql jdbc common-table-expression