Re: rounded brackets in prepared statement
От | dmp |
---|---|
Тема | Re: rounded brackets in prepared statement |
Дата | |
Msg-id | 511AFB32.9080302@ttc-cmc.net обсуждение исходный текст |
Ответ на | rounded brackets in prepared statement (Ladislav DANKO <ladislav.danko@enaktyment.cz>) |
Ответы |
Re: rounded brackets in prepared statement
|
Список | pgsql-jdbc |
It appears that since the argument to your prepare statement is a WHERE operation and you are using the ~, Match Regular Expression Case Sensitive, operator then the input is deemed as such. So parenthesis are valid constructs in these cases. Example from Documentation: POSIX Regular Expression Patterns Chapter 9. Functions & Operators 'abc' ~ '(b|d)' true 'abc' ~ '(^(b|c)' false danap. Ladislav DANKO wrote: > Hi folks, > > my setup: Java 1.6, JDBC PostgreSQL JDBC4 driver 9.1-903. > > Why when I do: > > PreparedStatement ps = myConnection.prepareStatement("SELECT a,b,c FROM > mytable WHERE category ~ ?"); > ps.setString(1, "my/super/category/a(bcdef"); > result = ps.executeQuery(); > > I need to escape rounded bracket in setString in this way: > ps.setString(1, "super/category/a(bcdef".replaceAll("\\(", "\\\\("))); > > I think it has somethink to do with regular expessions but ot know much > more about it. > > -- > With kind regards, > > Ladislav DANKO
В списке pgsql-jdbc по дате отправления: