Welcome 微信登录

首页 / 数据库 / MySQL / ibatis调用Oracle中的function

先做这样的假设,学生的学号和姓名可以唯一确定一个学生。Oracle存储过程create or replace function get_stu_birth(vid varchar,vname varchar) return date is
  vbirth   date;
  n          number;begin
 select count(*),birth into n,pbirth from student where id = vid and name = vname;
 if n>0 then
  vbirth:=pbirth;
 else
  null;
 end if;
 return vbirth;
end;StudentSqlMapper.xml<sqlMap namespace="studentMapper">
 <parameterMap id="stuparam" class="java.util.Map">
   <parameter property="vbirth" jdbcType="DATE" javaType="java.lang.String" mode="OUT" />
   <parameter property="vid" jdbcType="VARCHAR" javaType="java.lang.String" mode="IN" />
   <parameter property="vname" jdbcType="VARCHAR" javaType="java.lang.String" mode="IN" />
 </parameterMap>
 
 <procedure id="stuproc" parameterMap="stuparam">
    <![CDATA[
     {? = call get_stu_birth(?,?) }
    ]]>
 </procedure>
</sqlMap> 
Student.javaMap<String, String> mapIn = new HashMap<String, String>();
mapIn.put("vid", "100");
mapIn.put("vname", "xy");
mapIn.put("vbirth", "");
baseDao.selectObject("studentMapper.stuproc", mapIn);
Date birth = DateUtil.toDate(mapIn.get("vbirth").substring(0, mapIn.get("vbirth").length() - 2), "yyyy-mm-dd hh24:mi:ss");在执行完这句话之后baseDao.selectObject("studentMapper.stuproc", mapIn),mapIn.get("vbirth")的值已经被装进去了。格式如2012-1-1 12:12:12.0,所以要处理一下。Oracle中两表之间值互相插入和表自身插入值Oracle中的程序包相关资讯      Oracle基础知识 
  • 查看Oracle 32位还是64位(x86 or   (10/05/2014 19:10:00)
  • Oracle中表的建立与修改-五种约束  (02/07/2013 09:49:18)
  • Oracle select 语句字段连接  (12/17/2012 14:51:53)
  • Oracle online redo log 基础知识  (02/09/2013 09:43:04)
  • 如何查看Oracle数据库的session阻  (01/01/2013 09:11:15)
  • Oracle Redo Log 及Logmnr配置使用  (12/14/2012 19:36:51)
本文评论 查看全部评论 (0)
表情: 姓名: 字数