![](/img/trans.png)
[英]PostgreSQL & JDBC "Multiple ResultSets were returned by the query"
[英]Updating ResultSets with SQL Array types in JDBC / PostgreSQL
我正在尝试使用PostgreSQL 8.4和JDBC4驱动程序的SQL数组类型。
我的专栏定义如下:
nicknames CHARACTER VARYING(255)[] NOT NULL
而我正试图这样更新它:
row.updateArray("nicknames",
connection.createArrayOf("CHARACTER VARYING", p.getNicknames().toArray()));
( p.getNicknames()
返回List<String>
)
但我看到了:
org.postgresql.util.PSQLException:无法找到提供名称CHARACTER VARYING的服务器数组类型。 at org.postgresql.jdbc4.AbstractJdbc4Connection.createArrayOf(AbstractJdbc4Connection.java:67)at org.postgresql.jdbc4.Jdbc4Connection.createArrayOf(Jdbc4Connection.java:21)
不幸的是,数组类型似乎没有很好的文档记录 - 我没有找到确切的提到如何在PostgreSQL任何地方这样做:(
有任何想法吗?
将“CHARACTER VARYING”更改为“varchar”。 命令行psql
客户端接受类型名称“CHARACTER VARYING”,但JDBC驱动程序不接受。
org.postgresql.jdbc2.TypeInfoCache
的源包含已接受的类型名称列表。
考虑createArrayOf()
部分模糊措辞:
typeName是特定于数据库的名称,可以是此数据库支持的内置类型,用户定义类型或标准SQL类型的名称。
我总是假设驱动程序实现者将短语“特定于数据库的名称”和“由此数据库支持”解释为“接受您想要的任何内容”。 但也许您可以将其作为针对Postgres JDBC驱动程序的错误提交。
祝好运。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.