`
qinya06
  • 浏览: 595157 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

ibatis存储过程中,Oracle VARRAY自定义数据类型做IN参数的处理。

阅读更多
(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数据库中的存储过程,并实现返回自定义类型的处理方法。 #### Oracle自定义类型简介 Oracle支持用户自定义数据类型,这为复杂数据结构的应用提供了极大的便利。...

    ibatis调用oracle存储过程分页

    ibatis调用oracle存储过程分页

    ibatis调用oracle存储过程

    在IT领域,特别是数据库操作与Java开发中,利用ibatis框架调用Oracle存储过程是一个常见的需求,这不仅能够提升代码的执行效率,还能增强应用程序的安全性。本文将深入解析ibatis如何与Oracle数据库中的存储过程进行...

    ibatis自定义数据类型在不支持中文的数据库存储汉字

    总结来说,`iBatis`的自定义数据类型机制允许我们在不支持中文的数据库中存储汉字,通过编写自定义的TypeHandler,我们可以灵活地将中文字符串转换为数据库可以接受的格式,然后在读取时恢复原状。这种方式在无法...

    ibatis调用oracle的函数,存储过程的方法 IN 和OUT /游标

    本篇文章将详细探讨如何在iBatis中调用Oracle的函数和存储过程,尤其是处理IN和OUT参数以及游标的场景。 首先,我们需要了解iBatis的基本工作原理。iBatis是一个SQL映射框架,它允许开发者将SQL语句写在XML配置文件...

    ibatis调用oracle的函数,存储过程的方法

    本篇文章将详细介绍如何在Ibatis中调用Oracle的函数和存储过程。 首先,理解基本概念: 1. **Oracle函数**:函数是一段可重复使用的PL/SQL代码,它接收输入参数(IN参数),可选地返回一个结果值(RETURN参数)。...

    ibatis调存储过程返回游标

    首先定义参数映射和结果映射,然后在存储过程中指定这些映射,最后调用存储过程并处理返回的游标数据。这种机制为Java应用程序提供了强大的数据库交互能力,尤其是在处理大量数据和复杂查询场景下。 iBatis通过其...

    ibatIS调用存储过程

    ibatIS调用存储过程是数据库操作中常见的一种技术,特别是在复杂的业务逻辑处理或数据批量操作时,存储过程能够提供更高的效率和更好的性能。本文将深入探讨如何在ibatIS框架中调用存储过程,以及涉及到的相关知识点...

    ibatis学习总结,oracle , 敏捷开发,

    对于Oracle,你需要熟悉SQL语法,掌握数据类型,了解索引、视图、触发器和存储过程的使用。最后,学习敏捷开发,你需要了解敏捷宣言和原则,掌握Scrum或Kanban框架,并能在实践中灵活运用。 希望这篇总结能为你的...

    ibatis调用存储过程介绍

    在Java开发中,使用iBATIS(现在称为MyBatis)作为持久层框架时,调用数据库的存储过程是一种常见的需求。本文将详细介绍如何使用iBATIS调用存储过程,并提供一个简单的示例来说明其过程。 首先,我们需要在数据库...

    Ibatis调用存储过程调用存储过程

    总的来说,这主要包括三个方面的工作:定义XML映射文件中的存储过程参数映射和调用方式、实现Java层的DAO接口以及在数据库中创建对应的存储过程。这些步骤结合起来,使得开发者能够在Ibatis框架下灵活高效地使用存储...

    ibatis+oracle实例

    1. **数据类型**:Oracle支持多种数据类型,如`NUMBER`(数值)、`VARCHAR2`(可变长度字符串)、`DATE`(日期时间)、`CLOB`(大对象)等。 2. **索引**:为了提高查询效率,Oracle允许为表的列创建索引。B树索引...

    Ibatis.net+ oracle 简单事例

    对于Oracle,可能需要利用其特有的函数或特性,如PL/SQL存储过程、游标等。 3. **SQL映射接口**:在.NET 类中创建对应的接口,这个接口的方法对应XML文件中的SQL语句,实现业务逻辑与SQL的绑定。 4. **事务管理**...

    ibatis调用存储过程

    通过以上步骤,你可以在iBATIS中方便地调用存储过程,无论是无参数还是带参数的,都能轻松应对。记得在实际应用中,根据你的数据库和业务需求进行相应的调整。希望这个示例能帮助你更好地理解iBATIS调用存储过程的...

    ibatis与存储过程(带输出参数的应用)

    本主题将深入探讨如何在Ibatis中使用存储过程,特别是涉及带有输出参数的存储过程。 Ibatis,由MyBatis的前身发展而来,它是一个轻量级的ORM(对象关系映射)框架,允许开发者编写SQL语句并与Java对象进行绑定,而...

    ibatis调用存储过程.txt

    根据提供的文件信息,标题为“ibatis调用存储过程”,主要关注的是如何使用ibatis框架来调用数据库中的存储过程。下面将详细解释ibatis框架的基本概念、存储过程的概念以及如何在ibatis中配置和执行存储过程。 ### ...

    ibatis 读取oracle clob类型

    ibatis 读取oracle clob类型

    iBATIS操作Oracle CLOB数据

    CLOB是一种用于存储大量字符数据的数据类型,它可以容纳最大4GB的单个文本对象。在Oracle中,CLOB通常用于存储大段的文本,如文章、报告或者XML文档。 iBATIS是一个Java库,它允许开发者将SQL语句与Java代码分离,...

Global site tag (gtag.js) - Google Analytics