浏览 8349 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-12-22
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> 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-12-22
类似的方法也可以用来处理其它Oracle的自定义数据类型,比如 create or replace type Item AS object ( ID VARCHAR2(50), money NUMBER ); / create or replace type ItemArray as varray(255) of Item; / |
|
返回顶楼 | |
发表时间:2009-02-16
最后修改:2009-02-16
晚了一天才看到...直接jdbc做掉了
现在的问题是,这种方式下,能在ibatis中能实现直接以get("TYPE_字段名")的方式取得值么? jdbc只能以数组方式取值.这点让我不太舒服 |
|
返回顶楼 | |