当前位置: 首页 > 知识库问答 >
问题:

Postgres JDBC驱动程序:psqlexception:返回时或接近返回时出现语法错误

贲宏硕
2023-03-14
protected static final String AUTH_QUERY = "SELECT \"SECRET\" FROM \"user\" WHERE \"NAME\" = :name";

String password = sql2o.open().createQuery(AUTH_QUERY).addParameter("name", username).executeScalar(String.class);
org.postgresql.util.PSQLException: ERROR: syntax error at or near "RETURNING"
  Position: 47
    at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2161)
    at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1890)
    at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:255)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:559)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:417)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:302)
    at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeQuery(NewProxyPreparedStatement.java:76)
    at org.sql2o.Query.executeScalar(Query.java:533)
    at org.sql2o.Query.executeScalar(Query.java:577)
    at org.sql2o.Query.executeScalar(Query.java:568)
<Configure id="wac" class="org.eclipse.jetty.webapp.WebAppContext">

    <New id="mydb" class="org.eclipse.jetty.plus.jndi.Resource">
        <Arg></Arg>
        <Arg>jdbc/mydb</Arg>
        <Arg>
            <New class="com.mchange.v2.c3p0.ComboPooledDataSource">
                <Set name="driverClass">org.postgresql.Driver</Set>
                <Set name="jdbcUrl">jdbc:postgresql://localhost:5432/mydb</Set>
                <Set name="user">user</Set>
                <Set name="password">pass</Set>
            </New>
        </Arg>
    </New>
</Configure>
<dependency>
    <groupId>org.postgresql</groupId>
    <artifactId>postgresql</artifactId>
    <version>9.3-1101-jdbc41</version>
</dependency>

https://postimg.cc/image/gbl2dq4zx/

No.     Time           Source                Destination           Protocol Length Info
     12 0.175636000    127.0.0.1             127.0.0.1             PGSQL    182    >P/B/D/E/S

Frame 12: 182 bytes on wire (1456 bits), 182 bytes captured (1456 bits) on interface 0
PostgreSQL
    Type: Parse
    Length: 69
    Statement: 
    Query: SELECT "SECRET" FROM "user" WHERE "NAME" = $1 RETURNING *
    Parameters: 1
        Type OID: 1043

共有1个答案

姚建树
2023-03-14

这看起来像是SQL2O的一个问题。关于bug报告的评论说:

使用PostgreSQL时,所有SELECT语句都将失败,并显示消息:org.PostgreSQL.util.psqlexception:error:“returning”或“returning”附近的语法错误。

似乎与这个问题有关

 类似资料:
  • 我使用python脚本,它传递给卡桑德拉批处理查询,如下所示: 这是一段时间的工作,但在启动脚本失败并打印后约2分钟内: 我将超时从 更改为: read_request_timeout_in_ms:15000 range_request_timeout_in_ms:20000 write_request_timeout_in_ms:20000 cas_contention_timeout_in_m

  • 在使用执行搜索后,我从Chrome网络驱动程序中得到这个: 这就是规格要求吗? 我这么问是因为我找不到任何地方用大写字母清楚地写着“元素”。我能在规范中找到的就是设置了一个名为的键(它是:它被设置为 > 我是否总能从其他浏览器的Web驱动程序中得到这种响应?也就是说,和是否总是返回? 这是铬构成对象的方式吗?或者这是真实的任何网络驱动程序?当然不是,其他的web驱动程序返回什么?

  • 我在Spring Boot服务中有一个rest控制器,如下所示: 我可以让服务生成八位元组流和application/Json,但我的困惑在于出现错误时字节数组的返回类型,在这种情况下,我希望生成Json而不是字节数组 请给我出主意如何解决这个问题

  • 我有一个方法: 当包括睡眠和锁时,我得到: 不过,如果我注释所有锁和,它会按照预期工作。我需要锁,因为我正在处理其他线程。完整的代码如下所示:https://godbolt.org/z/7erjrg,因为otput提供的信息不多,所以我很累

  • 我正在尝试实现一个服务,该服务在外部数据库中搜索项目,如果找到,则将其保存在本地数据库中。 我有以下路线: 当项目搜索器(itemSearcher)找到项目时,它可以完美地工作。当项目搜索器(itemSearcher)没有找到该项目时,它将返回null。我希望消息正文将设置为null,但我得到了以下异常: 我在itemSearcher返回null后立即调试了Camel的代码,发现null有效地被设

  • 我正在制作一个简单的Rest服务,它必须将JSON请求中的数据添加到数据库(MongoDB)中。当我向服务发出请求时出现问题,服务器会出现以下错误: Controller@0.0.0start C:\users\Fernando\Google Drive\tcc_Fernando_Felipe\Controller\Controller节点./bin/www {[Error:找不到模块“../bu