From: | "Albe Laurenz" <laurenz(dot)albe(at)wien(dot)gv(dot)at> |
---|---|
To: | "uprooter *EXTERN*" <uprooter(at)gmail(dot)com>, <pgsql-jdbc(at)postgresql(dot)org> |
Subject: | Re: JDBC exception, incompatible types in simple stored procedure. |
Date: | 2009-01-20 08:54:12 |
Message-ID: | D960CB61B694CF459DCFB4B0128514C202F75D8D@exadv11.host.magwien.gv.at |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | 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
From | Date | Subject | |
---|---|---|---|
Next Message | uprooter | 2009-01-20 09:24:55 | Re: JDBC exception, incompatible types in simple stored procedure. |
Previous Message | Kent Tong | 2009-01-20 03:44:37 | experience sharing: select query returns more records than necessary |