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
|
- Re: Invalid Number Guido García Bernardo
-