VARRAY is not a JDBC type - it is Oracle specific.  You might get this to work by specifying the JDBC type of OTHER.  Then you can cast the returned object yourself after iBATIS returns it.
 
Jeff Butler

 
On 5/24/06, Christina Xu <[EMAIL PROTECTED]> wrote:
Hello All,

I wonder iBatis supports the store procedure call
which has a out parameter of VARRAY. Please help.

On store procedure side I have:

create or replace TYPE myType is VARRAY(100) of
VARCHAR(2).

create or replace procedure MyProcedure(inParam IN
DATE, outParam OUT myType) is .....

On the sqlMap I have:
<sqlMap>
<resultMap id="procResultMap" class="MyResult">
   <result property="dataName" column="MY_NAME" />
</resultMap>
<parameterMap id="procMap" class="Map" >
   <parameter property="inParam" jdbcType="DATE"
javaType="java.sql.Date" mode="IN" >
   <parameter property="outParam" jdbcType="VARRAY"
mode="OUT" >
</parameterMap>
<procedure id="doMyProc" parameterMap="procMap"
resultMap="procResultMap">
    { call MyProcedure(?,?)}
</procedure>
</sqlMap>


At java code I have:

...
map = new HashMap();
map.put("inParam", new
java.sql.Date(System.currentTimeMillis()));
map.put("outParam",null);
sqlClient.queryForList("doMyProc", map);

I got the error message "register output parameters
failed" , "Invalid column type".


Please help. Thanks a lot !

Chris

__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around
http://mail.yahoo.com

Reply via email to