I think you're defining the "?" parameter incorrectly for the PreparedStatement.
Try this instead:-
String query="SELECT count(*) over () as ROWCOUNT,
CONSUMER_ID,WENEXA_ID,CONSUMER_NAME,CONTACT_NO,residing_village from
db_consumer WHERE lower(CONSUMER_NAME) LIKE (lower(?))";
query.setString(1,"%Fred%");
Where "Fred" is the string you're searching for.
You cannot use the ? token to substitute part of data value, only a whole value. As you are parameterizing the
"pattern"argument to the LIKE expression which is a String argument, you must pass the complete pattern as a String
parameter.
Hope this helps,
Andrew
On 22/08/11 09:14, JavaNoobie wrote:
> Hi,
> I tried that example but it threw an error as follows.
> org.postgresql.util.PSQLException: ERROR: syntax error at or near "%"
> Position: 158
> at
> org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2102)
> at
> org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1835)
>
> Why could this be happening?
>
> --
> View this message in context:
http://postgresql.1045698.n5.nabble.com/how-to-Escape-single-quotes-with-PreparedStatment-tp4718287p4722528.html
> Sent from the PostgreSQL - jdbc mailing list archive at Nabble.com.
>