Michael Ma <mikema@ficnet.net> writes:
> While running the following SQL statement in postgresql-7.0-1 via
> JDBC,
> select a.cus_code, a.dlv_code, b.cus_abbr, a.dlv_abbr,
> a.address, a.tel, a.fax, a.contact
> from dlv_point a, customer b
> where ((a.cus_code >= ? and a.cus_code <= ?)
> or (b.cus_abbr >= ? and b.cus_abbr <= ?))
> and trim(b.cus_code) = trim(a.cus_code)
> order by 1 ;
> I got the following error message:
> Unable to identify a right operator '>=' for type 'bpchar'
> You may meed to add parentheses or an explicit cast.
It looks to me like the parser is thinking that "a.cus_code >= ?"
must represent application of a suffix operator '>=' followed by
application of another suffix operator '?'. Which is indeed about
the only way it could make any sense of the expression.
I assume you were expecting something to get substituted for the '?'
marks before the query is submitted, but it evidently didn't happen ...
regards, tom lane