Search code examples
wso2wso2-esb

"ORA-01722: invalid number" when passing property to IN statement in Data Service


I have a SQL query in Data Service:

SELECT ... FROM ... WHERE ... IN (?)

where '?' is a list if ID's separated by comma. When I manually put ID's in query (IN (1234, 1235)) it works, but when I try to pass them through String property {id=1234, 1235} Im getting ORA-01722: invalid number. This how I define my input param, I guess it's something with data types but I cant seem to make it work.

<param type="IN" name="id" optional="false" sqlType="STRING" paramType="SCALAR" />

Solution

  • As a workaround how about parsing a dynamic query string?

    <sql>SELECT ... FROM ... :fquery</sql>
    <param name="fquery" paramType="SCALAR" sqlType="QUERY_STRING"/>
    

    In the request.

    GET ....../YOUR_SERVICE?fquery=WHERE id IN (1234, 1235)