(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数据库中的存储过程,并实现返回自定义类型的处理方法。 #### Oracle自定义类型简介 Oracle支持用户自定义数据类型,这为复杂数据结构的应用提供了极大的便利。...
ibatis调用oracle存储过程分页
在IT领域,特别是数据库操作与Java开发中,利用ibatis框架调用Oracle存储过程是一个常见的需求,这不仅能够提升代码的执行效率,还能增强应用程序的安全性。本文将深入解析ibatis如何与Oracle数据库中的存储过程进行...
总结来说,`iBatis`的自定义数据类型机制允许我们在不支持中文的数据库中存储汉字,通过编写自定义的TypeHandler,我们可以灵活地将中文字符串转换为数据库可以接受的格式,然后在读取时恢复原状。这种方式在无法...
本篇文章将详细探讨如何在iBatis中调用Oracle的函数和存储过程,尤其是处理IN和OUT参数以及游标的场景。 首先,我们需要了解iBatis的基本工作原理。iBatis是一个SQL映射框架,它允许开发者将SQL语句写在XML配置文件...
本篇文章将详细介绍如何在Ibatis中调用Oracle的函数和存储过程。 首先,理解基本概念: 1. **Oracle函数**:函数是一段可重复使用的PL/SQL代码,它接收输入参数(IN参数),可选地返回一个结果值(RETURN参数)。...
首先定义参数映射和结果映射,然后在存储过程中指定这些映射,最后调用存储过程并处理返回的游标数据。这种机制为Java应用程序提供了强大的数据库交互能力,尤其是在处理大量数据和复杂查询场景下。 iBatis通过其...
ibatIS调用存储过程是数据库操作中常见的一种技术,特别是在复杂的业务逻辑处理或数据批量操作时,存储过程能够提供更高的效率和更好的性能。本文将深入探讨如何在ibatIS框架中调用存储过程,以及涉及到的相关知识点...
对于Oracle,你需要熟悉SQL语法,掌握数据类型,了解索引、视图、触发器和存储过程的使用。最后,学习敏捷开发,你需要了解敏捷宣言和原则,掌握Scrum或Kanban框架,并能在实践中灵活运用。 希望这篇总结能为你的...
在Java开发中,使用iBATIS(现在称为MyBatis)作为持久层框架时,调用数据库的存储过程是一种常见的需求。本文将详细介绍如何使用iBATIS调用存储过程,并提供一个简单的示例来说明其过程。 首先,我们需要在数据库...
总的来说,这主要包括三个方面的工作:定义XML映射文件中的存储过程参数映射和调用方式、实现Java层的DAO接口以及在数据库中创建对应的存储过程。这些步骤结合起来,使得开发者能够在Ibatis框架下灵活高效地使用存储...
1. **数据类型**:Oracle支持多种数据类型,如`NUMBER`(数值)、`VARCHAR2`(可变长度字符串)、`DATE`(日期时间)、`CLOB`(大对象)等。 2. **索引**:为了提高查询效率,Oracle允许为表的列创建索引。B树索引...
对于Oracle,可能需要利用其特有的函数或特性,如PL/SQL存储过程、游标等。 3. **SQL映射接口**:在.NET 类中创建对应的接口,这个接口的方法对应XML文件中的SQL语句,实现业务逻辑与SQL的绑定。 4. **事务管理**...
通过以上步骤,你可以在iBATIS中方便地调用存储过程,无论是无参数还是带参数的,都能轻松应对。记得在实际应用中,根据你的数据库和业务需求进行相应的调整。希望这个示例能帮助你更好地理解iBATIS调用存储过程的...
本主题将深入探讨如何在Ibatis中使用存储过程,特别是涉及带有输出参数的存储过程。 Ibatis,由MyBatis的前身发展而来,它是一个轻量级的ORM(对象关系映射)框架,允许开发者编写SQL语句并与Java对象进行绑定,而...
根据提供的文件信息,标题为“ibatis调用存储过程”,主要关注的是如何使用ibatis框架来调用数据库中的存储过程。下面将详细解释ibatis框架的基本概念、存储过程的概念以及如何在ibatis中配置和执行存储过程。 ### ...
ibatis 读取oracle clob类型
CLOB是一种用于存储大量字符数据的数据类型,它可以容纳最大4GB的单个文本对象。在Oracle中,CLOB通常用于存储大段的文本,如文章、报告或者XML文档。 iBATIS是一个Java库,它允许开发者将SQL语句与Java代码分离,...