java调用oracle存储过程
来源:互联网 发布:java种方法覆盖super 编辑:程序博客网 时间:2024/06/11 14:36
java调用oracle存储过程
java代码
Map<String, String> param = new HashMap<String, String>();param.put("in_str", "1,2,3,4");//入参wxMapper.execProcedure(param);//调用存储过程,参数以map的形式传递String lsn = param.get("out_str");//出参
mybatis的接口定义
String execProcedure(Map<String, String> param);
mybatis的xml文件
<!--注明statementType="CALLABLE"表示调用存储过程--> <!--传入传出参数要注明mode=IN/OUT 并要注明jdbcType --> <select id ="execProcedure" parameterType="java.util.Map" statementType="CALLABLE" > {call lsq_pkg_test( #{in_str,mode=IN,jdbcType=VARCHAR},#{out_str,mode=OUT,jdbcType=VARCHAR})} </select >
存储过程
create or replace procedure <span style="font-family: Arial, Helvetica, sans-serif;">lsq_pkg_test </span><span style="font-family: Arial, Helvetica, sans-serif;">(in_str in out varchar2,out_str out varchar2) is</span>
--如果入参不需要修改则为(<span style="font-family: Arial, Helvetica, sans-serif;">in_str in varchar2</span>),否则为(<span style="font-family: Arial, Helvetica, sans-serif;">in_str in out varchar2</span><span style="font-family: Arial, Helvetica, sans-serif;">).相当于多加了一个out</span>v_res_str varchar2(20);v_current varchar2(20);tmp_str number;tmp_s varchar2(100);begin v_res_str:=''; v_current:=''; loop EXIT WHEN in_str IS NULL; lsq_pkg_grant_test(in_str, v_res_str, v_current, ',');--字符串的截取 select count(*) into tmp_str from 表名 where 字段名= v_current;--根据截取的字符,进行数据库的查询 if tmp_str =0 then--查询不到数据 out_str:=CONCAT(tmp_s,v_current) ;--把截取的字符赋值给返回值 tmp_s:=concat(out_str,','); --tmp_s :=out_str; in_str:=v_res_str;--把截取后剩下的字符,再一次赋值给原始字符,进行字符串截取 else in_str:=v_res_str;--把截取后剩下的字符,再一次赋值给原始字符,进行字符串截取 end if; end loop;end;
字符串截取的存储过程
create or replace procedure lsq_pkg_grant_test(P_INSTR IN VARCHAR2,--传入字符串,逗号分隔,输入参数 P_STRS OUT VARCHAR2,--截取第1个值之后剩下的字符串,输出参数 P_CURR OUT VARCHAR2, --截取到的第1个值,输出参数 P_CHAR IN VARCHAR2--以什么字符为分隔字符 ) is CURR_LOCA NUMBER;begin CURR_LOCA := INSTR(P_INSTR, P_CHAR, 1, 1); P_CURR := SUBSTR(P_INSTR, 0, CURR_LOCA - 1); IF P_CURR IS NULL THEN P_CURR := P_INSTR; P_STRS := NULL; ELSE P_STRS := SUBSTR(P_INSTR, CURR_LOCA + 1); END IF; end;
0 0
- java调用oracle存储过程
- java 调用 oracle 存储过程
- java调用存储过程(oracle)
- java调用oracle存储过程
- java 调用 oracle存储过程
- java调用oracle存储过程
- java调用oracle存储过程
- java调用oracle存储过程
- java调用Oracle存储过程
- JAVA调用Oracle存储过程
- Java调用Oracle存储过程
- java调用oracle存储过程
- Java调用Oracle 存储过程
- Java调用Oracle存储过程
- java oracle 存储过程调用
- Java调用Oracle存储过程
- JAVA调用oracle存储过程
- java调用oracle存储过程
- 程序设计题目参考
- Linux系统下HTML5使用SQLite后数据库文件的存放位置
- Python进阶之闭包
- sudo: sorry, you must have a tty to run sudo
- V3.1管理经验总结分析
- java调用oracle存储过程
- Android微信支付的两大坑点
- bzoj-3564 信号增幅仪
- Ubuntu镜像源和pypi镜像源
- Sublime Text 3 学习及使用
- zone_watermark_ok()的理解
- C/C++中作用域详解
- [BZOJ1050][HAOI2006]旅行comf
- Chapter1 基础部分 - iOS 8 Swift Programming cookBook 读书笔记