(1)在oracle中有如下自定义数据类型。
create or replace type IdArray as VARRAY(255) of NUMBER;
(2)同时定义了一个存储过程/包。
CREATE OR REPLACE PACKAGE pkg_auth IS
PROCEDURE UserAdd(v_loginName IN VARCHAR2,
v_types IN IdArray,
errcode OUT VARCHAR2,
errmsg OUT VARCHAR2);
END pkg_auth;
(3)在pl/sql中进行测试时,使用如下的sql语句
DECLARE
v_idarray IDARRAY:= IDARRAY( 1,2,3 );
BEGIN
pkg_auth.UserAdd(v_loginName => 'xxx'
v_types => v_idArray,
...............);
END;
]]>
(4)因此,在ibatis中做如下配置。
<procedure id="save" parameterClass="map">
<![CDATA[
DECLARE
]]>
<dynamic>
<isNotEmpty property="types">
<iterate open="v_idArray IDARRAY := IDARRAY(" close=");" property="types" conjunction=",">
<![CDATA[#types[].id#]]>
</iterate>
</isNotEmpty>
<isEmpty property="types">
<![CDATA[v_idarray IDARRAY:= IDARRAY( );]]>
</isEmpty>
</dynamic>
<![CDATA[
BEGIN
pkg_auth.UserAdd(v_loginName => #loginName,jdbcType=VARCHAR,mode=IN#,
v_types => v_idArray,
errcode => #errCode,jdbcType=INTEGER,mode=OUT#,
errmsg => #errMsg,jdbcType=VARCHAR,mode=OUT#);
END;
]]>
</procedure>
-------------------------------------------------
类似的方法也可以用来处理其它Oracle的自定义数据类型,比如
create or replace type Item
AS
object (
ID VARCHAR2(50),
money NUMBER
);
/
create or replace type ItemArray as varray(255) of Item;
分享到:
相关推荐
Ibatis调用Oracle存储过程,返回自定义的类型。
ibatis调用oracle存储过程分页
ibatis自定义数据类型在不支持中文的数据库存储汉字
ibatis调用oracle存储过程
ibatis学习总结,oracle 学习总结,大数据量处理
ibatis调存储过程返回游标,资料整理
ibatis 读取oracle clob类型
ibatis调用oracle的函数,存储过程的方法,从网上收集的,还没有整理。
ibatis调用存储过程使用示例,处理带参数及无参数类型的存储过程,是一个不错的例子。
ibatis+oracle简单实例,其中包括ibatis jar包以及oracle驱动包
iBatis调用存储过程
IBATIS调用存储过程
Ibatis中调用其它的SQL语句很容易,那么如何在Ibatis中调用存储过程呢?
ibatis与存储过程(带输出参数的应用)
用ibatis调用存储过程的介绍,使用java语言进行开发
ibatis3.0中in的用法ibatis3.0中in的用法ibatis3.0中in的用法ibatis3.0中in的用法
一个Ibatis。net 的应用事例 数据库为oracle 用vs2008 导入即可使用。
ibatis调用存储过程.txt [removed] var share_info = {}; [removed]
ibatis oracle ibatis-2.3.3.jar ojdbc14.jar ibatis连接oracle所需的jar包