【问题标题】:postgres 9 | jdk 7.45 | irregular "No results were returned by the query"postgres 9 | JDK 7.45 |不规则“查询未返回任何结果”
【发布时间】:2013-11-08 13:33:39
【问题描述】:

这件事让我从昨天开始就变得愚蠢了(谷歌搜索了很多,但没有找到任何其他有同样问题的开发人员)。 我正在使用 postgresql 7 将用 java (jdk5) 编写的应用程序服务器升级到使用 postgresql 9 的 jdk7。

简单而荒谬的问题:

一个 INSERT 和一个 SELECT 在同一个语句中:

insert into table(a,b) values('a','b') ; select currval('table_pkey_id')

没什么特别的,看起来简单明了.. 但是使用 postgresql-9.3-1100.jdbc3.jar 并不能更好地工作,会在主题中引发错误。

sql 语句使用 pgadmin 像往常一样工作,返回插入行的 id。 但是使用带有 pg9/java7 的 javam 进行相同的查询,它会引发错误,就像我在简单的插入语句上使用 executeQuery 一样。

stmt=cnn.createStatement(rst.TYPE_SCROLL_INSENSITIVE,rst.CONCUR_READ_ONLY);
stmt.executeQuery(sql);

org.postgresql.util.PSQLException:查询未返回任何结果。”

为什么是上帝?!我想要并且需要在不中断上述 2 个 sql 语句的情况下解决此问题。 在 executeQuery 实现中似乎是一个非常愚蠢的错误。

请反馈。谢谢。

最大

【问题讨论】:

    标签: java sql jdbc jdbc-postgres


    【解决方案1】:

    我认为你最好改为:

    insert into table(a,b) values('a','b') RETURNING id;
    

    所有支持的 PostgreSQL 版本现在都支持返回。

    【讨论】:

    • 或者更好的是,使用 JDBC getGeneratedKeys 功能。
    • 我必须尝试'returning id'和getGeneratedKeys(这听起来更不标准。如果结果有趣,我会报告结果)。无论如何,这听起来像是一个半严重和愚蠢的 jdbc 错误。谢谢。最大
    猜你喜欢
    • 2011-04-17
    • 2020-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-20
    • 2020-02-03
    • 1970-01-01
    相关资源
    最近更新 更多