gpt4 book ai didi

java - 无法从 Vertx 3 中的 Postgres 存储过程返回值

转载 作者:行者123 更新时间:2023-11-30 07:39:18 25 4
gpt4 key购买 nike

我似乎无法从 postgres 数据库返回值...知道如何解决这个问题吗?

JsonArray outParam = new JsonArray().add("integer");

connection.callWithParams(spAddUser, params, outParam, response -> {

if (response.succeeded()) {
ResultSet result = response.result();
...

我收到此错误消息:

org.postgresql.util.PSQLException: No function outputs were registered.
at org.postgresql.jdbc.PgStatement.checkIndex(PgStatement.java:2208)
at org.postgresql.jdbc.PgStatement.checkIndex(PgStatement.java:2191)
at org.postgresql.jdbc.PgStatement.getObject(PgStatement.java:2088)
at com.mchange.v2.c3p0.impl.NewProxyCallableStatement.getObject(NewProxyCallableStatement.java:172)
at io.vertx.ext.jdbc.impl.actions.JDBCCallable.convertOutputs(JDBCCallable.java:83)
at io.vertx.ext.jdbc.impl.actions.JDBCCallable.execute(JDBCCallable.java:59)
at io.vertx.ext.jdbc.impl.actions.JDBCCallable.execute(JDBCCallable.java:33)
at io.vertx.ext.jdbc.impl.actions.AbstractJDBCAction.handle(AbstractJDBCAction.java:48)

这是我的示例商店程序:

create or replace function addUser(_acid int, _slno int, _dob date)
returns int as $$

insert into users (acid,slno,dob)
values (_acid, _slno, _dob)
returning uid;
$$ language sql;

最佳答案

我发现如果我的存储过程中没有使用 IN/OUT,则不必传递输出参数。因此将输出参数设置为 null 可以解决问题。

connection.callWithParams(spAddUser, params, null, response -> {

if (response.succeeded()) {
ResultSet result = response.result();
...

关于java - 无法从 Vertx 3 中的 Postgres 存储过程返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34924224/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com