Re: [JDBC] Re: JDBC and the hstore ? operator - no longer workingwith build 1211
От | Mark Rotteveel |
---|---|
Тема | Re: [JDBC] Re: JDBC and the hstore ? operator - no longer workingwith build 1211 |
Дата | |
Msg-id | 7cab903f4c0f8cd90f83f71db275f6ce@lawinegevaar.nl обсуждение исходный текст |
Ответ на | [JDBC] Re: JDBC and the hstore ? operator - no longer working with build1211 (Thomas Kellerer <spam_eater@gmx.net>) |
Ответы |
Re: [JDBC] Re: JDBC and the hstore ? operator - no longer workingwith build 1211
[JDBC] Re: JDBC and the hstore ? operator - no longer working with build1211 Re: Re: JDBC and the hstore ? operator - no longer workingwith build 1211 Re: JDBC and the hstore ? operator - no longer working with build1211 |
Список | pgsql-jdbc |
On 2017-03-02 09:54, Thomas Kellerer wrote: > Vladimir Sitnikov schrieb am 01.11.2016 um 15:00: >>> This has been "broken" for a while now, you have to use ?? to get it >>> to work. > > This still doesn't work completely with a PreparedStatement. > > Other hstore operators that start with an ? do not work: ?& and ?| > > e.g.: > > connection.prepareStatement("select * from foo where hstore_column > ?& array['key']"); > connection.prepareStatement("select * from foo where hstore_column > ?| array['key']"); > > The prepareStatement() call succeeds, but when calling executeQuery() > an exception is thrown: > > org.postgresql.util.PSQLException: No value specified for parameter > 1. > > The goal is to pass the array as a parameter, something like: > > Array keys = con.createArrayOf("text", new String[] > {"key1","key2"}); > connection.prepareStatement("select * from foo where hstore_column > ?& ?"); > pstmt.setArray(1, keys); > ResultSet rs = pstmt.executeQuery(); > > Tested with 1212 and 42.0.0 I haven't tried it, but would you logically need to use ??& and ??|, if the ? operator is escaped using ?? Mark
В списке pgsql-jdbc по дате отправления: