Re: JDBC exception, incompatible types in simple stored procedure.
От | Albe Laurenz |
---|---|
Тема | Re: JDBC exception, incompatible types in simple stored procedure. |
Дата | |
Msg-id | D960CB61B694CF459DCFB4B0128514C202F75D8D@exadv11.host.magwien.gv.at обсуждение исходный текст |
Ответ на | JDBC exception, incompatible types in simple stored procedure. (uprooter <uprooter@gmail.com>) |
Ответы |
Re: JDBC exception, incompatible types in simple stored
procedure.
|
Список | pgsql-jdbc |
uprooter wrote: > I'm using this code to access a very simple stored procedure > that has 1 in > parameter and 1 out parameter: > String url = "jdbc:postgresql://localhost/DB2"; > Properties props = new Properties(); > props.setProperty("user", "user"); > props.setProperty("password", "blah"); > Connection conn = DriverManager.getConnection(url, props); > CallableStatement upperProc = conn.prepareCall("{ ? = call stub( ? ) }"); > upperProc.registerOutParameter(1, Types.OTHER); > upperProc.setInt(2, 2); > upperProc.execute(); > Object upperCased = upperProc.getObject(1); > System.out.println("uppercased:" + upperCased.toString()); > upperProc.close(); > > I'm getting the following exception: > Exception in thread "main" org.postgresql.util.PSQLException: A > CallableStatement function was executed and the out parameter 1 was of type > java.sql.Types=-5 however type java.sql.Types=1111 was registered. > > I know I can register to another type but due to other restrictions I can't > change the registration type. > Any idea ? Maybe you can use PreparedStatement: PreparedStatement stmt = conn.prepareStatement("SELECT stub( ? )"); stmt.setInt(1, 2); ResultSet rs = stmt.executeQuery(); rs.next(); System.out.println("uppercased: " + rs.getObject(1)); rs.close(); Yours, Laurenz Albe
В списке pgsql-jdbc по дате отправления: