ibatis调用的存储过程返回结果集,但列数不定,怎么破?

存储过程中由于业务原因,游标结果中返回的列数不定。后台用的ibatis,不知道怎么配置。
ibatis配置代码:

<resultMap id="wsCheckVerifyInfoRstMap" class="java.util.HashMap">
    <result property="channel" column="channel" />
    <result property="pj_mobile" column="pj_mobile" />
</resultMap>

<parameterMap id="wsCheckVerifyInfoMap" class="map">
    <parameter property="acc" jdbcType="VARCHAR" javaType="java.lang.String" mode="IN" />
    <parameter property="out_tHeadCursor" jdbcType="ORACLECURSOR" javaType="java.sql.ResultSet" mode="OUT" resultMap="wsStatusAndMsgRstMap"/>
    <parameter property="out_tDetailCursor" jdbcType="ORACLECURSOR" javaType="java.sql.ResultSet" mode="OUT" resultMap="wsCheckVerifyInfoRstMap"/>
</parameterMap>

<procedure id="queryWsCheckVerifyInfo" parameterMap="wsCheckVerifyInfoMap">
    <![CDATA[
        call pkg_itboc_casr0ca0.p_GetStampFailure(?,?,?)
    ]]>
</procedure>
存储过程代码段:
if nCountVerify > 0 and nCountFinance > 0 then
             v_sSql := ' select 2,t.channel,pj_mobile,fin_mobile from dzdhz_rel t where acc = '''||p_sAccNo||''' and t.channel != 1  and rownum < 2';            
             open out_tDetailCursor for v_sSql ;               
         elsif nCountVerify > 0 then
             v_sSql := ' select 1,t.channel,pj_mobile from dzdhz_rel t where acc = '''||p_sAccNo||''' and t.channel != 1 and rownum < 2';            
             open out_tDetailCursor for v_sSql ;             
         elsif nCountFinance > 0 then
             v_sSql := ' select 1,t.channel,fin_mobile from dzdhz_rel t where acc = '''||p_sAccNo||''' and t.channel != 1 and rownum < 2';            
             open out_tDetailCursor for v_sSql ;             
         else 
             v_sSql := ' select 0,t.channel,pj_mobile,fin_mobile from dzdhz_rel t where acc = '''||p_sAccNo||''' and t.channel != 1 and rownum < 2';            
             open out_tDetailCursor for v_sSql;  
         end if;



有些sql中多了fin_mobile,在ibatis中怎么配置才可以通过?

http://blog.csdn.net/cleanfield/article/details/4163495