Mybatis调用oracle自定义函数

天使特穆尔 2013-04-08 09:44:15
这是我的自定义函数:
create or replace function wquery.fn_get_orderlist(invarpid varchar2,
invarstartTime varchar2,
invarendTime varchar2,
invarorderId varchar2,
invardealId varchar2,
inintpageNo integer default 1,
inintpageSize integer default 30,
outintrowcnt out integer,
outcurlist out sys_refcursor)
return integer is

begin
open outcurlist for
select 1 from dual;
case
when invarpid is null then
return - 1;
when invarstartTime is null and invarendTime is null and
invarorderId is null and invardealId is null then
return - 1;
else
null;
end case;

---返回总数量
select count(1)
into outintrowcnt
from wops.t_transaction_order z, wops.t_order_b2c_extra_info b
where b.partner_id = invarpid
and (b.trade_id = invarorderId or invarorderId is null)
and (z.id = invardealId or invardealId is null)
and z.id = b.id
and (z.created_time >= to_date(invarstartTime, 'yyyymmddhh24miss') or
invarstartTime is null)
and (z.created_time < to_date(invarendTime, 'yyyymmddhh24miss') or
invarendTime is null);

--返回条目
open outcurlist for
select (select stragg(to_char(t.created_time, 'yyyymmddhh24miss') || ':' ||
current_status || ':' || order_amount || ':' ||
receivable_fee || ':' ||
to_char(sharing_time, 'yyyymmddhh24miss') || ':' ||
sharing_seq_id)
from wops.t_transaction_order t, wops.t_async_sharing_info a
where t.id = a.id(+)
and t.parent_business_id = z.business_id) suborders,
z.*
from (select *
from (select z.*, rownum rn
from (select b.trade_id, b.partner_id, z.*
from wops.t_transaction_order z,
wops.t_order_b2c_extra_info b
where b.partner_id = invarpid
and (b.trade_id = invarorderId or
invarorderId is null)
and (z.id = invardealId or invardealId is null)
and z.id = b.id
and (z.created_time >=
to_date(invarstartTime, 'yyyymmddhh24miss') or
invarstartTime is null)
and (z.created_time <
to_date(invarendTime, 'yyyymmddhh24miss') or
invarendTime is null)
order by z.created_time) z)
where rn > inintpageSize * (inintpageNo - 1)
and rn > inintpageSize * inintpageNo) z;

return 0;
end fn_get_orderlist;
/
请问我用mybatis怎么进行调用返回
...全文
900 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
tianma630 2013-04-08
  • 打赏
  • 举报
回复
用ibatis调用过存储过程 不知道是不是一个原理

   <parameterMap id="pm_user_info" class="java.util.Map">
       <parameter property="acdGroup" javaType="String" jdbcType="varchar2" mode="IN"/>
       <parameter property="mobilePhone" javaType="String" jdbcType="varchar2" mode="IN"/>
       <parameter property="email" javaType="String" jdbcType="varchar2" mode="IN"/>
       <parameter property="themes" javaType="String" jdbcType="varchar2" mode="IN"/>
       <parameter property="state" javaType="String" jdbcType="varchar2" mode="IN"/>
       <parameter property="gender" javaType="String" jdbcType="varchar2" mode="IN"/>
       <parameter property="memo" javaType="String" jdbcType="varchar2" mode="IN"/>
       <parameter property="regDate" javaType="String" jdbcType="varchar2" mode="IN"/>
    </parameterMap>
	
    <procedure id="proc_add_user_bcaUser" parameterMap="pm_user_info" resultClass="int">
       {call proc_add_user_bcaUser(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)}
    </procedure>
天使特穆尔 2013-04-08
  • 打赏
  • 举报
回复
好吧 自己解决了
forgetsam 2013-04-08
  • 打赏
  • 举报
回复
改成存储过程。
安特矮油 2013-04-08
  • 打赏
  • 举报
回复
<select id="..." parameterType="..." resultType="..." > select wquery.fn_get_orderlist(参数) as result from dual </select>
天使特穆尔 2013-04-08
  • 打赏
  • 举报
回复
为什么没有人啊
天使特穆尔 2013-04-08
  • 打赏
  • 举报
回复
自己顶下 各位大神啊

67,550

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧