Re: Out parameters for functions.

Dave Cramer <[email protected]>
Newsgroups gmane.comp.db.postgresql.jdbc
Message-ID <CADK3HHJH3Sajge8UHsQfa8LDycQMvOOjK05YDkkzHoDMUMcJ0w@mail.gmail.com>
Hi Robert,

Based on the test cases in the code this is how it works.

How does one register the out parameters in other drivers ?

Dave Cramer

[email protected]
www.postgresintl.com


On Wed, 19 Sep 2018 at 10:43, Robert Zenz <[email protected]>
wrote:

> 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?
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.