Thread: Re: type casting in 8.3

Re: type casting in 8.3

From
thefronny@gmail.com
Date:
On Feb 11, 3:15 am, "${spencer}" <spenc...@gmail.com> wrote:
> I just literally ran my first search of the day and got the same
> error.
>
> i changed my query so that the integer was cast into text and then it
> worked fine.
>
> thefro...@gmail.com wrote:
> > All,
>
> > I'm getting the following (new) (php?) error on a database recently
> > moved from 8.2.6 to 8.3. I know there's been changes with casts in 8.3
> > and I intend to learn how to fix them but I don't know how to
> > interpret the error:
>
> > ERROR: operator does not exist: character <> integer LINE 1: ...
> > 303841-9' and amount > 0 and quant > 0 and reg_id != 99) gro... ^
> > HINT: No operator matches the given name and argument type(s). You
> > might need to add explicit type casts.
>
> > I think that
>
> > operator does not exist: character <> integer
>
> > is the key here. Does it mean the query is trying to interpret a text
> > string as an integer? The string ...303841-9 is an ISBN number and is
> > char(16) in the table.
>
> > Thanks for any pointers or links to a tutorial.
>
> > tf


Ya know, I found and fixed my problem today at work. I just explicitly
cast everything in the query and as I worked my way through it I
watched how the error message changed. At the very end I came up to
something like "...and store != $store". I changed it to "...and
store != '$store'" and, bingo the query worked again. Then I backed
out all the :: casting I had done and everything still worked. 'magine
that.

tf

Re: type casting in 8.3

From
Alban Hertroys
Date:
On Feb 12, 2008, at 2:55 AM, thefronny@gmail.com wrote:

> On Feb 11, 3:15 am, "${spencer}" <spenc...@gmail.com> wrote:
>> I just literally ran my first search of the day and got the same
>> error.
>>
>> i changed my query so that the integer was cast into text and then it
>> worked fine.
>>
>> thefro...@gmail.com wrote:


> Ya know, I found and fixed my problem today at work. I just explicitly
> cast everything in the query and as I worked my way through it I
> watched how the error message changed. At the very end I came up to
> something like "...and store != $store". I changed it to "...and
> store != '$store'" and, bingo the query worked again. Then I backed
> out all the :: casting I had done and everything still worked. 'magine
> that.

Maybe the two of you should be wondering why you're comparing text to
integer values? Something is wrong there in your design, obviously.
You could be in for some unpleasant surprises, for example wrt
ordering (1, 2, 10 vs '1', '10', '2').

Alban Hertroys

--
If you can't see the forest for the trees,
cut the trees and you'll see there is no forest.


!DSPAM:737,47b18f65233091858395181!