ibatis调用oracle存储过程输入输出自定义数组对象

来源:互联网 发布:淘宝直通车服务商 编辑:程序博客网 时间:2024/05/07 05:00
 

 (1) oracle 中创建自定义对象

CREATE OR REPLACE TYPE rec_class as object(cid NUMBER(16),                                           cname VARCHAR2(50)) ;


(2) oracle 中创建自定义对象数组

CREATE OR REPLACE TYPE REC_CLASS_LIST as table of REC_CLASS;

(3) oracle 中创建存储过程

PROCEDURE test_inarray(v_loginName         IN VARCHAR2,                           v_rec_class_list    IN REC_CLASS_LIST,                           p_code              OUT VARCHAR2,                           p_msg               OUT VARCHAR2) IS                      v_rec_class REC_CLASS;    v_count number;begin    v_count := v_rec_class_list.count;    p_code:=v_loginName;    for i in 1..v_count        loop           v_rec_class:=v_rec_class_list(i);           p_msg:=v_rec_class.cname;       end loop;end test_inarray;


(3) 在iBATIS配置文件中加入,需要注意的时候,在定义返回参数的时候,需要指定typeName

<parameterMap id="cus_rs" class="java.util.HashMap">        
       <parameter property="sid" jdbcType="VARCHAR" javaType="java.lang.Long" mode="IN"></parameter>       <parameter property="mydata" jdbcType="ARRAY" mode="OUT" typeName="TYPEUNITSET"></parameter>       </parameterMap>       <procedure id="AtestStudent.getPrcOutInfo" parameterMap="cus_rs">       <![CDATA[           {call MYPROC(?,?)}             ]]>    </procedure>



 

原创粉丝点击