mybatis如何调用oracle的函数 10C

图片说明
这个是已经写好的函数,两个参数。
我应该如何在mybtis里面写,以及在java代码里面写

1

8个回答

1.先在pl/sql中编写测试好自定义函数,待用。
2.在mybatis的mapper映射文件中调用函数

{#{userids,mode=OUT,jdbcType=VARCHAR} = call F_GET_ROLEIDS(#{userid,mode=IN,jdbcType=VARCHAR})}

3.java中的调用
Map map = new HashMap();
map.put("userids", "");
map.put("userid", 4);
sqlSessionTemplate.selectOne("test.getUerids", map);
String ids = (String)map.get("userids");

0

1.先在pl/sql中编写测试好自定义函数,待用。
2.在mybatis的mapper映射文件中调用函数

{#{userids,mode=OUT,jdbcType=VARCHAR} = call F_GET_ROLEIDS(#{userid,mode=IN,jdbcType=VARCHAR})}

3.java中的调用
Map map = new HashMap();
map.put("userids", "");
map.put("userid", 4);
sqlSessionTemplate.selectOne("test.getUerids", map);
String ids = (String)map.get("userids");

0

xml文件里面直接写调用的sql就好了

0
0

可以直接在mybatis的mapper映射文件中调用函数:{#{userids,mode=OUT,jdbcType=VARCHAR} = call F_GET_ROLEIDS(#{userid,mode=IN,jdbcType=VARCHAR})}

0

XML里面:

<parameterMap class="java.util.HashMap" id="paramId" >
<parameter property="jobsid"    javaType="INT"     jdbcType="NUMBER"  mode="IN"/>
<parameter property="direction"    javaType="INT"     jdbcType="NUMBER"  mode="IN"/>
</parameterMap>
<procedure id="updYh"  parameterMap="paramId" >
     {call FN_PP_GET_JOBINTERVAL_BY_JOBSID(?,?)}
</procedure>

JAVA里面:
JAVA里面就是把你的两个参数封装到map里面就可以了。
如:

    Map map = new HashMap();
    map.put("jobsid", "123");
    map.put("direction", "订单编号");
    dbDao.update(map);

图片说明

0

1.先在pl/sql中编写测试好自定义函数,待用。
2.在mybatis的mapper映射文件中调用函数

{#{userids,mode=OUT,jdbcType=VARCHAR} = call F_GET_ROLEIDS(#{userid,mode=IN,jdbcType=VARCHAR})}

3.java中的调用
Map map = new HashMap();
map.put("userids", "");
map.put("userid", 4);
sqlSessionTemplate.selectOne("test.getUerids", map);
String ids = (String)map.get("userids");
说明:
java.util.Map中put了userid、userids两个属性,其中userid存放了函数的输入参数,userids用于存放函数调用后的返回值。
注:转自http://blog.csdn.net/jbgtwang/article/details/9064359

-1

1.先在pl/sql中编写测试好自定义函数,待用。
2.在mybatis的mapper映射文件中调用函数

{#{userids,mode=OUT,jdbcType=VARCHAR} = call F_GET_ROLEIDS(#{userid,mode=IN,jdbcType=VARCHAR})}

3.java中的调用
Map map = new HashMap();
map.put("userids", "");
map.put("userid", 4);
sqlSessionTemplate.selectOne("test.getUerids", map);
String ids = (String)map.get("userids");
说明:
java.util.Map中put了userid、userids两个属性,其中userid存放了函数的输入参数,userids用于存放函数调用后的返回值。
注:转自http://blog.csdn.net/jbgtwang/article/details/9064359

-1
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
mybatis调取oracle函数并接收返回结果
1:编写简单函数: create or replace function fun_test(p1 varchar2,p2 varchar2) return varchar2 is Result varchar2(200); begin Result := p1||p2; return(Result); end fun_test;2:xml
mybatis中调用oracle自定义函数
前几天在工作中遇到要在mybatis中调用oracle自定义函数的情景。其实很简单:1.先在pl/sql中编写测试好自定义函数,待用。2.在mybatis的mapper映射文件中调用函数&amp;lt;select id=&quot;getUerids&quot; statementType=&quot;CALLABLE&quot; parameterType=&quot;java.util.Map&quot;&amp;gt;        {#{userids,mode...
Mybatis调用Oracle中的存储过程和function
一、Mybatis调用存储过程 1 在数据库中创建以下的存储过程 create or replace procedure pro_hello(p_user_name in varchar2,p_result out varchar2) is begin   p_result := 'hello,' || p_user_name; end;   2 编写SQL映射文件map
MyBatis调用oracle的自定义函数
fn_no_make这个就是我的方法名字。直接调用传入参数。经过实验证明该方式可行insert into application (application_id, serial_number, application_type, applicant, agent, process_id,
Mybatis调用Oracle带包存储过程
存储过程太多的情况可分包存储。方便查找些。 1.建带包存储过程: oracle中找到包右键新建,代码可参考以下 create or replace package PKG_A_LOG(包名) is /** 存储过程1 **/ PROCEDURE WRITE_LOG(存储过程名)( ID IN VARCHAR2, O_MSG
Mybatis调用Oracle中的包和存储过程
1.创建包头 create or replace package pkg_alen as type cursorRef is ref cursor; procedure query2(u_name VARCHAR2,cursor_ref out cursorRef); end pkg_alen; 2.创建包体 create or replace package body pkg_alen...
Mybatis下配置调用Oracle自定义函数返回的游标结果集
{#{result,mode=OUT,jdbcType=CURSOR, resultMap=SelfStatisticData} = call PKG_RRT_SelfStatics.Fn_GetSelfStatData(#{userCode,jdbcType=VARCHAR,mode=IN}) }
mybatis调用Oracle存储过程返回结果集
在开发中,有时需要关联几张表来进行一些复杂的计算,此时可采用建立一张临时表,将每次的数据计算后先存入临时表,然后通过Oracle的游标返回。 在mybatis中的调用如下: //调用语法格式,需要构造一个resultMap,用来接收返回的结果集 &amp;lt;select id=&quot;queryManagerSalaryDet&quot; resultType=&quot;java.util.Map&quot; statement...
Oracle创建存储过程及在Mybatis中的调用
1.需求说明 系统中多个业务ID生成规则为:固定前缀+顺序号,考虑到可能删除和顺序号到头的原因,因此需要一个存储过程,查找出可用的顺序号 2.存储过程 --生成cno的规则 --cno_pre:前缀,即非顺序号的部分 --table_name:表名 --col_name:CNO字段名 --suf_length:顺序号长度 --min_use_cno:返回的最小可用值 create o
如何调用oracle的函数、存储过程
如何调用oracle的函数、存储过程
mybatis中使用IN函数
[code=&quot;java&quot;] //listproductSn 是一个list,其存储函数IN所需的条件 select * from A where 1=1 AND product_sprotType IN #{item} [/code]
mybatis 映射oracle spatial JGeometry 类型并调用存储过程。
有个需求是经纬度坐标字符串通过 http请求,后台调用一个 oracle存储过程. 因为调用oracle库,并且需要用到spatial特性的geometry类型的字段,所以就用了oracle自己的类库。 oracle.spatial.geometry.JGeometry。 我这里涉及到4个jar包。 sdoapi.jar sdotopo.jar sdoutl.jar sdon...
mybatis调用oracle存储过程返回的二维数组(type是table的)
最近做个项目有很多的报表统计,涉及到几十张表抽取数据,形成一系列统计数据。    举个例子,比如统计一个单位不同职务级别女人数量、少数民族数量、30岁以上人员数量,40以上人员数量等。如:    董事长:0 0 0 1    中层领导:2 2 3 8     职员:20 40 80 200     刚开始想办法拼成了一个超级长的sql来做,但是最后长度超过vachar2的最大长度了,虽然
Mybatis 调用oracle存储过程的方法介绍
1:调用无参数的存储过程。 创建存储过程: Mapper.xml 配置:经测试其他标签(update、insert、select)也可以。 Mapper.java MapperTest.java 测试   2:有参数的存储过程调用: 2.1存储过程的创建:   2.2Mapper.xml 的配置: 2.3Mapper.java 2.4MapperTes
mybaits调用函数的方法
配置文件中        {#{dalsh,mode=OUT,jdbcType=VARCHAR} = call BUSINESS.getdalsh(#{glbm,mode=IN,jdbcType=VARCHAR})} 方法中这样写@SuppressWarnings("unchecked") public String getObjectId(String glbm) {  // TODO Auto
MyBatis中调用存储过程和函数
MyBatis中调用存储过程和函数 一.调用存储过程    1.首先在数据库中定义存储过程,定义的存储过程的代码如下:    //定义存储过程create or replace procedure pag_add(p1 varchar2,p2 varchar2,p3 out varchar2) as begin p3:=p1+p2;
mybatis调用ORACLE存储过程
myibatis调用ORACLE存储过程通过本文简单描述下myibatis如何调用存储过程,以及获取相应的结果集。 1、数据库表结构create table TSYS_USER ( id NUMBER(38) not null, user_name VARCHAR2(100), login_name VARCHAR2(100), user_pas
mybatis oracle中使用存储过程,遍历表,多个输出参数
CREATE OR REPLACE --创建存储过程时,加上用户名,否则mybatis调用时无法识别 PROCEDURE 'USERNAME'.&quot;MLRETENTIONSTAT&quot; (one OUT INT, two OUT INT, three OUT INT, four OUT INT) IS CURSOR C_STOCK IS --申明游标 SELECT ST.SHELVE_...
mybatis调用Oracle存储过程,并接收返回值(游标类型)
初次学习存储过程调用,写得不是很好,有不对的地方大家多多指教,希望能对您有所帮助。1.普通返回值:Oracle存储过程:/*测试用存储过程*/create or replace procedure p_test(v_slid in varchar2,v_sm out varchar2,v_sm2 out varchar2) authid current_user is begin declar...
Mybatis中调用mysql的函数
&lt;select id=&quot;getSpellFull&quot; parameterType=&quot;java.lang.String&quot; resultType=&quot;java.lang.String&quot;&gt; SELECT getSpellFull(#{name}) FROM dual &lt;/select&gt;
mybatis调用oracle存储过程-传入多个参数返回结果集
mybatis.xml配置:                                                                                CALL procedureTest_02( #{user_login,mode=IN,jdbcType=VARCHAR
MyBatis 调用 Oracle 存储过程 获取 OUT 的内容
1. 存储过程 CREATE OR REPLACE PROCEDURE P_RUN_T0(i_BATCH_CODE IN VARCHAR2, i_LEGAL_ORGANIZATION IN VARCHAR2, o_RETUR...
mybatis获取Oracle函数的返回值
添加链接描述
Mybatis Oracle 使用存储过程进行分页
一、存储过程 --存储过程语句 CREATE OR REPLACE PROCEDURE PAGE_UTIL(--存储过程分页工具 location IN VARCHAR2,--查询语句 page IN int,--第几页 perPageCount IN int,--每页几条记录 totalPage out SYS_REFCURSOR,--查询出的总页数 ...
oracle存储过程----mybatis传入参数调用存储过程查询
  上一篇的链接是 oracle存储过程----异常的写法介绍   有这样的需求,比如共有表B1-B17,现在要求传入年度、行政区划,查询出所有符合条件的B1-B17的记录,(当然,仅查询这些表中共同有的字段),因为这算是跨表查询了。   一般我们写的sql可能如下: select a.b_type,a.b_name,a.b_sort,c.nd,c.tbrq ,c.zt,c.id,c.tbrmc ...
Mybatis+Oracle将对象集合传给存储过程DEMO
Mybatis+Oracle将对象集合传给存储过程DEMO 参考链接:http://stackoverflow.com/questions/12719689/how-to-pass-java-list-of-objects-to-oracle-stored-procedure-using-mybatis 这几天公司需要使用到存储过程,且存储过程参数为对象集合,在网上搜了很久的资料,终于了解了大...
SSM-Mybatis调用Oracle存储过程返回结果集(游标)示例
原文参考:https://www.jianshu.com/p/0ae6d9d66d61?tdsourcetag=s_pctim_aiomsg 1.创建一个包 此处创建一个包,是为了创建存储过程时,用游标作为out输出参数时声明为游标类型用的. --创建一个包 create or replace package types as type empListCursor is ref curso...
mybatis调取oracle execute immediate动态拼接函数返回结果
1:编写简单函数: create or replace function fun_dynamic(cusfun varchar2) return varchar2 is vSQL varchar2(200); Result varchar2(200); begin --vSQL := 'BEGIN :1:=FNC_TEST(2,3,:res); END;'; vSQL :=
mybatis调用oracle存储过程返回结果集
存储过程: CREATE OR REPLACE procedure P_TEST(v_cursor OUT sys_refcursor) as begin OPEN v_cursor FOR select POST_ID, FORUM_ID, USER_ID, POST_TITLE, POST_CONTENT, POST_TIME, TOTAL_COMMENT_COUNT from POS
mybatis调用oracle存储过程返回游标 读取到java的List<Map>
mybatis调用oracle存储过程返回结果集:http://blog.csdn.net/eunyeon/article/details/52745396 java读取ORACLE 存储过程 返回游标(cursor) 格式 读取到List中:https://my.oschina.net/u/1587544/blog/371792 mapper: {call P_TES
使用mybatis给Oracle存储过程传List,数组类型.
0.不废话.直接上过程 1.因为Oracle本身是有数组概念的.我们直接使用Oracle中的数组,但需要先创建类型,varray也就是Oracle的数组,100指定长度,of后面指定类型, CREATE OR REPLACE TYPE tables_array AS VARRAY(100) OF VARCHAR2(32); 2.第二步,创建一个表,进行测试数据, drop table ...
SpringBoot+MyBatis+Oracle增、删、改、查、批处理及存储过程Demo
    本文着重偏重于:SpringBoot+MyBatis+Oracle的,增删改查、批处理及存储过程的Demo,源码见文末章节。Demo概述    使用SpringBoot和MyBatis,对Oracle数据的增、删、改、查、批处理、及调用存储过程,都做了示例代码及SQL的配置示例,对于各种参数传递方法,出入参类型等,也都做了示例或备注。    本Demo使用数据库为Scott/Tiger用户...
springmvc MyBatis 调用Oracle存储过程,使用Map传递参数
1.存储过程 CREATE OR REPLACE Procedure aaa(num In Varchar,Type In Varchar,Name Out Varchar) As Begin If Type='1' then Select channels Into Name From bdp_bi.xx_test Where nums=num; Else if Type='2' T
mybatis 调用oracle 存储过程并返回结果集
1. xml文件 {call cassify_massive_water_bill( #{startMonth,mode=IN}, #{endMonth,mode=IN}, #{waterProperty,mode=IN}, #{avgYsl,mode=I
MyBatis 调用Oracle存储过程,使用Map传递参数
1.存储过程(没有return关键字返回结果集,可以通过out输出结果集) CREATE OR REPLACE Procedure aaa(num In Varchar,Type In Varchar,Name Out Varchar) As Begin If Type='1' then Select channels Into Name From bdp_bi.xx_test Where n...
Mybatis中ORACLE存储过程基本调用(带in和out参数)
首先存储过程,内容是根据名字查工作和部门create or replace procedure manyparm(tname in varchar2, tjob out varchar2, tdept out varchar2) is begin ...
mybatis注解方式调用存储过程
水电费水电费
mybatis调用Oracle存储过程
1.创建Oracle存储过程完成库存加减操作,如果按equipType1和equipType2查询记录存在,则在原数量基础上进行增减;如果查询记录不存在,则新增一条记录。 存储过程创建如下:   CREATE OR REPLACE PROCEDURE &quot;UPDATE_EQUIPMENT_STOCK&quot; (P_EQUIP_TYPE1 IN NUMBER, P_EQUIP_TYPE2 IN...
mybatis调用oracle存储过程批量更新数据
最近做了一个批量更新数据的小程序,采用的是mybatis调用oracle存储过程的方式。1.编写oracle存储过程,--mydept为传入参数create or replace procedure diary_refresh(mydept in varchar2) as--声明变量popAt Date;lastAt Date;duration number;prjOn number;prjOff...
MySQL Mybatis 动态批量替换 (模拟Oracle regexp_replace功能)
在项目中遇到了一个地方,需要把原先用Oracle写的sql改成MySQL的,然而里面就设计到了标题提到的regexp_replace函数。 我们的需求就是,要替换掉数据库中数据中的一些特殊字符,来和后台处理过特殊字符的数据进行比对,判断是否相同。 举个例子,数据库里面有一个字段的值是AB.C-D&amp;amp;V,后台通过处理,得到一个字符串为ABCDV,这个时候我们比较的结果肯定是不等的...
文章热词 统计学稳健估计opencv函数 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 python调用深度学习 微信开发调用视频通话