Java 无法从Vertx3中的Postgres存储过程返回值
我似乎无法从postgres db获得返回值…知道如何修复此问题吗Java 无法从Vertx3中的Postgres存储过程返回值,java,postgresql-9.1,vertx3,Java,Postgresql 9.1,Vertx3,我似乎无法从postgres db获得返回值…知道如何修复此问题吗 JsonArray outParam = new JsonArray().add("integer"); connection.callWithParams(spAddUser, params, outParam, response -> { if (response.succeeded()) { ResultSet result = response.result(); ... 我的
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();
...