1

postgres db から返された値を取得できないようです...これを修正する方法はありますか?

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;
4

1 に答える 1

1

ストアド プロシージャで IN/OUT を使用していない場合は、出力パラメーターを渡す必要がないことがわかりました。そのため、出力パラメータを に設定nullすると問題が解決します。

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

if (response.succeeded()) {
    ResultSet result = response.result();
...
于 2016-01-22T08:43:55.307 に答える