You should use the $xxxx$ sintax as Larry describes.

searchVO.setCostComponentIdArrayAsString("\"1234\",\"456\",\"588\"");
flights = this.sqlMap.queryForList("getFlightsbyCriteria", searchVO);


and in sqlMap:
    AND COMPONENT_MOVEMENT_TYPE_ID in ($costComponentIdArrayAsString$)

On the other hand, maybe your database uses the SINGLE QUOTE:
    searchVO.setCostComponentIdArrayAsString("'1234','456','588'");

As Larry said, I'd reccomend you to pass in an array or list instead of a String.

sonusgr escribió:
Thanks for your quick reply. I tried setting the string as
searchVO.setCostComponentIdArrayAsString("\"1234\",\"456\",\"588\"");
so that it would get into the sqlmap as  "1234","456","588"
but no luck. Still getting invalid number.
I also tried hard coding them inside the sqlmap with quotes but still no
luck.
Did I misunderstood something?

Thanks

Larry Meadors-2 wrote:
  
iBATIS uses prepared statements for this, so the SQL that is being
executed is like this:

... AND COMPONENT_MOVEMENT_TYPE_ID in ("12,34,56")

That won't work. you need to make the values like this:

... AND COMPONENT_MOVEMENT_TYPE_ID in ("12","34","56")

That means you either use sql injection (err, substitution I mean) like
this:

... AND COMPONENT_MOVEMENT_TYPE_ID in ($someValues$)

...or you need to pass in an array or list and search the archives for
"dynamic sql" and "iterate". I'd highly reccomend this approach over
the $other$.

Larry


On 10/10/06, sonusgr <[EMAIL PROTECTED]> wrote:
    
Hi guys,

I am trying to pass a string of numbers to the my sql statement
but  I am getting SQLException invalid number

The funny thing is that this occurs only when I am passing more than one
number, meaning if that string I am passing
having more than one number.

so in DAO we ve got :
searchVO.setCostComponentIdArrayAsString("1234,456,588");
                        flights =
this.sqlMap.queryForList("getFlightsbyCriteria", searchVO);


and in sqlMap:
AND COMPONENT_MOVEMENT_TYPE_ID in (#costComponentIdArrayAsString#)

that throws the SQLException

---------

But if I do searchVO.setCostComponentIdArrayAsString("1234");
works fine...

What am I doing wrong here?
could it be a backend error?

thanks guys
--
View this message in context:
http://www.nabble.com/Invalid-Number-tf2417727.html#a6739736
Sent from the iBATIS - User - Java mailing list archive at Nabble.com.


      
    

  


-- 
Guido García Bernardo

Tfn. +34 983 54 89 08
ITDEUSTO - Valladolid

Reply via email to