Re: how to Escape single quotes with PreparedStatment

From: Andrew Hastie <andrew(at)ahastie(dot)net>
To: pgsql-jdbc(at)postgresql(dot)org
Subject: Re: how to Escape single quotes with PreparedStatment
Date: 2011-08-22 09:47:29
Message-ID: 4E5225B1.1030506@ahastie.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

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.
>

In response to

Responses

Browse pgsql-jdbc by date

  From Date Subject
Next Message JavaNoobie 2011-08-22 09:56:49 Re: how to Escape single quotes with PreparedStatment
Previous Message JavaNoobie 2011-08-22 08:14:34 Re: how to Escape single quotes with PreparedStatment