`
yztxlty
  • 浏览: 6522 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

IBATIS调用oracle function(函数)的方法实例

 
阅读更多
引用
 
create or replace function getClassifiedCode(p_planCode               in varchar2 -- 险种代码
                                            ,
                                             p_usageAttributeCode     in varchar2 -- 使用性质代码
                                            ,
                                             p_ownershipAttributeCode in varchar2 -- 所属性质代码
                                            ,
                                             p_vehicleTypeCode        in varchar2 -- 车辆种类代码
                                             ) return varchar2 is
  v_classified_code varchar2(10);
  v_vehicleTypeCode varchar2(200) := p_vehicleTypeCode;
  v_message         varchar2(2000);
  -- 定义字符串数组类型
  type type_array is varray(9) of varchar2(200);
  vehicleArray type_array := type_array('A010:A011:A012',
                                        'A020:A021:A022:A032',
                                        'A030:A031:A042:A052',
                                        'B010:B011:B012',
                                        'B020:B021:B022:B032',
                                        'B030:B031:B042',
                                        'C010:C011:C020:C021:C030:C031:B140:B141:E010:E011:E110:E111:C012:C022:C032:C042:B142:E012:E022:E112:E122',
                                        'D110:D111:D010:D011:D012:D022:D112',
                                        'C012:C112:C122:C132:C142:C152:C162:C172:C182');

begin

  for i in 1 .. vehicleArray.count loop
        if (instr(vehicleArray(i), p_vehicleTypeCode, 1, 1) > 0) then
      v_vehicleTypeCode := vehicleArray(i);
       exit;
    end if;
  end loop;

  select max(class_rule_code)
    into v_classified_code
    from class_rule_factor
   where factor_code = 'F00085'
     and factor_value_set = p_planCode;
  

  if (v_classified_code is not null) then
    return v_classified_code;
  end if;

  select max(class_rule_code)
    into v_classified_code
    from class_rule_factor
   where class_rule_code in
         (select distinct class_rule_code
            from class_rule_factor
           where class_rule_code in
                 (select distinct class_rule_code
                    from class_rule_factor
                   where factor_code = 'F00039'
                     and factor_value_set = p_usageAttributeCode)
             and factor_code = 'F00040'
             and factor_value_set = p_ownershipAttributeCode)
     and factor_code = 'F00042'
     and factor_value_set = v_vehicleTypeCode;

  if (v_classified_code is not null) then
    return v_classified_code;
  end if;

  select max(class_rule_code)
    into v_classified_code
    from class_rule_factor
   where class_rule_code in
         (select distinct class_rule_code
            from class_rule_factor
           where factor_code = 'F00039'
             and factor_value_set = p_usageAttributeCode)
     and factor_code = 'F00042'
     and factor_value_set = v_vehicleTypeCode;

  if (v_classified_code is not null) then
    return v_classified_code;
  end if;

  select distinct  max(class_rule_code)
    into v_classified_code
    from class_rule_factor
   where factor_code = 'F00999'
     and factor_value_set = 'OTHER';

  return v_classified_code;
exception
  when others then
    v_message := sysdate || '日运行错误,错误号:' || SQLCODE || '错误原因:' ||
                 substr(sqlerrm, 1, 1800);
    -- dbms_output.put_line(v_message);
    return null;
end getClassifiedCode;
 
	@Override
	public String getClassifiedCode(Map paramMap) throws PafaDAOException {
		String classifiedCode = null;
		try{
			this.getSqlMapClientTemplate().queryForObject("apply.getClassifiedCode", paramMap);
			classifiedCode = (String) paramMap.get("result");
		}catch(DataAccessException e){
			throw NBAExceptionFactory.createPafaDAOException(this.getClass().getName(), "getClassifiedCode", "根据险种代码查找classifiedCode异常 .", "参数:paramMap = "+paramMap, e);
		}
		return classifiedCode;
	}

  

 

<!-- 获取任务分类 -->    	
<parameterMap id="getClassifiedCodeParamMap" class="java.util.Map">         
		<parameter property="result" 					jdbcType="VARCHAR"   		 javaType="java.lang.String" mode="OUT" />
		<parameter property="planCode" 					jdbcType="VARCHAR"           javaType="java.lang.String" mode="IN" />         
		<parameter property="usageAttributeCode" 		jdbcType="VARCHAR"           javaType="java.lang.String" mode="IN" />         
		<parameter property="ownershipAttributeCode" 	jdbcType="VARCHAR"           javaType="java.lang.String" mode="IN"/>
		<parameter property="vehicleTypeCode" 			jdbcType="VARCHAR"           javaType="java.lang.String" mode="IN"/>
</parameterMap>  

<procedure  id="getClassifiedCode"  parameterMap="getClassifiedCodeParamMap">           
	{ ?= call epciscde.getClassifiedCode(?,?,?,?)}            
</procedure>  

 

分享到:
评论

相关推荐

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

    - 使用SqlSession对象的`selectOne`或`execute`方法调用相应的方法。 调用函数: ```java String employeeName = sqlSession.selectOne("callOracleFunction", id); ``` 调用存储过程: ```java Map, ...

    ibatis调用oracle存储过程分页

    ibatis调用oracle存储过程分页

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

    在iBatis中,你可以创建一个Java方法来映射这个函数,方法的返回类型应与Oracle函数的返回类型匹配。在SQL映射文件中,使用`&lt;select&gt;`标签定义这个函数调用,并在`resultType`属性中指定返回类型。 2. **处理IN参数...

    ibatis调用oracle存储过程

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

    Ibatis调用Oracle存储过程返回自定义类型

    本文将深入探讨如何使用Ibatis框架来调用Oracle数据库中的存储过程,并实现返回自定义类型的处理方法。 #### Oracle自定义类型简介 Oracle支持用户自定义数据类型,这为复杂数据结构的应用提供了极大的便利。...

    ibatis+oracle实例

    在IT行业中,数据库管理和持久化框架是至关重要的技术领域,而`ibatis+oracle`的组合就是这样的一个经典实例。Ibatis,一个轻量级的Java ORM(对象关系映射)框架,允许开发者将SQL语句与Java代码分离,提高了数据库...

    ibatis 读取oracle clob类型

    ibatis 读取oracle clob类型

    ibatis连接oracle所需的jar包

    5. **调用Ibatis接口**:在Java代码中,通过SqlSession对象调用SQL映射文件中的方法执行数据库操作。例如: ```java SqlSession session = sqlSessionFactory.openSession(); User user = session.selectOne(...

    Spring MVC+ibatis+oracle框架整合

    本项目整合了Spring MVC、iBatis和Oracle数据库,这三个组件都是企业级应用开发中的重要工具。接下来,我们将深入探讨这三个技术以及它们如何协同工作。 **Spring MVC框架** Spring MVC是Spring框架的一部分,是一...

    Ibatis+Oracle(含对应数据库sql) 源码

    1. **Ibatis的基本使用**:如何配置SqlMapConfig.xml,定义Mapper接口和XML映射文件,以及如何在Java代码中通过SqlSession调用Mapper方法。 2. **Oracle数据库的连接**:了解如何在Java中使用JDBC和odbc14.jar驱动...

    iBatis调用存储过程

    iBatis调用存储过程

    ibatIS调用存储过程

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

    struts2+spring+ibatis+oracle+分页搜索+上传附件实例

    综上所述,这个实例展示了如何整合Struts2、Spring、iBatis和Oracle来构建一个完整的Web应用,实现了动态分页搜索和附件上传功能。这种架构具有良好的可扩展性和可维护性,适用于各种中大型企业级项目。开发者可以...

    spring+ibatis+oracle分页缓存源码

    Spring、iBatis和Oracle的结合提供了强大的数据处理能力。本文将深入探讨这些技术如何协同工作,实现高效的分页缓存策略。 首先,Spring是一个开源的Java框架,它为开发人员提供了依赖注入(DI)和面向切面编程...

    ibatis调用存储过程介绍

    `session.selectOne()`方法调用存储过程,传入映射文件中的`id`和参数`map`。调用完成后,`z`的值会更新在`map`中,我们可以从`map`获取并打印出来。 总结来说,使用iBATIS调用存储过程主要涉及以下几个步骤: 1. ...

    ibatis调用存储过程

    当我们需要调用数据库中的存储过程时,iBATIS也提供了一种简便的方法。本篇文章将详细介绍如何在iBATIS中调用存储过程,包括带参数和不带参数的存储过程,并通过一个具体的例子进行说明。 首先,存储过程是预编译的...

    ibatis oracle 实例 (源码)

    这个“ibatis oracle 实例”压缩包提供了将Ibatis与Oracle数据库结合使用的具体示例,旨在帮助开发者更好地理解和应用这两个技术。 首先,我们来看Ibatis的核心概念。Ibatis的主要组成部分包括XML配置文件、SQL映射...

    ibatis调用存储过程.txt

    ibatis通过SQL映射文件,将接口方法调用映射为一个或多个SQL语句,并自动完成参数设置和结果集处理,从而简化了Java应用程序与数据库之间的交互。 ### 二、存储过程概述 存储过程是一种预编译的SQL脚本,它可以...

Global site tag (gtag.js) - Google Analytics