Out parameters for functions.

From: Robert Zenz <robert(dot)zenz(at)sibvisions(dot)com>
To: "pgsql-jdbc(at)postgresql(dot)org" <pgsql-jdbc(at)postgresql(dot)org>
Subject: Out parameters for functions.
Date: 2018-09-19 14:42:50
Message-ID: 5BA2606B.60607@sibvisions.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

Hello everybody.

We've recently had to use functions which used OUT parameters and we are a
little bit confused regarding the handling of such. In other JDBC drivers one
does simply register the OUT parameter at the appropriate position in the
parameter list. However, with the PostgreSQL JDBC driver we had to skip the
registration of the OUT parameter altogether, the return value for the OUT
parameter is then returned *after* all other parameters.

Example, there is function which does accept three parameters:

1. IN numeric
2. OUT varchar
3. INOUT timezone

When calling this function we have to do the following:

CallableStatement statement = connection.prepareCall("{ ? = call test(?, ?) }");
statement.registerOutParameter(1, Types.NUMERIC); // Return value.
statement.setObject(2, value); // IN numeric
statement.setObject(3, value); // INOUT timezone

statement.execute();

statement.getObject(4); // OUT varchar

This is a little bit confusing at first, is that intended to behave as such?

Responses

Browse pgsql-jdbc by date

  From Date Subject
Next Message Roger Pack 2018-09-19 17:16:19 isValid(5) doesn't come back
Previous Message zloster 2018-09-19 07:21:03 Re: ssl connection issues