On 02/12/10 13:14, Zhipan Wang wrote: > Statement st = c.createStatement(); > ResultSet r = st.executeQuery("select unnest(col0) from relation2_col1 > where keyValue<500"); > PreparedStatement sql = c.prepareStatement( "SELECT col1 FROM relation2 > WHERE col0 IN ?"); > sql.setObject(1, r); > ResultSet result = sql.executeQuery(); You appear to be trying to implement a subquery client-side. Why not just use: PreparedStatement sql = c.prepareStatement( "SELECT col1 FROM relation2 WHERE col0 IN "+ "(SELECT unnest(col0) from relation2_col1 where keyValue<500" ); ? It's hard to know whether the above is correct because you've failed to provide your schema, but something along those lines seems to fit your intent from the code above. > I am using Eclipse, and there is no warning for this code. No, Eclipse can't know the details of how every JDBC driver works. > Can't a result set be used in another query? How do I correct it? Either build an array with the contents of the resultset and pass that, or avoid the weirdness by using a subquery directly. -- System & Network Administrator POST Newspapers -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general