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?