java调用oracle存储过程

java代码

Map param = new HashMap();

param.put("in_str", "1,2,3,4");//入参

wxMapper.execProcedure(param);//调用存储过程,参数以map的形式传递

String lsn = param.get("out_str");//出参

mybatis的接口定义

String execProcedure(Map param);

mybatis的xml文件

{call lsq_pkg_test(

#{in_str,mode=IN,jdbcType=VARCHAR},#{out_str,mode=OUT,jdbcType=VARCHAR})}

存储过程

create or replace procedure lsq_pkg_test (in_str in out varchar2,out_str out varchar2) is

--如果入参不需要修改则为(in_str in varchar2),否则为(in_str in out varchar2).相当于多加了一个out

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;

java调用存储过程 oracle_java调用oracle存储过程相关推荐

  1. oracle存储过程游标写法,Oracle存储过程,游标使用

    语法: CREATE [OR REPLACE] PROCEDURE procedure_name (arg1 [mode1] datatype1,arg2 [mode2] datatype2,...) ...

  2. oracle存储过程不退出,oracle 存储过程不结束

    Q5:oracle数据库怎么创建存储过程? Oracle存储过程包含三部分:过程声明,执行过程部分,存储过程异常. Oracle存储过程可以有无参数存储过程和带参数存储过程. 一.无参程序过程语法 1 ...

  3. oracle中的存储过程是什么,oracle存储过程是什么?

    oracle存储过程是:首先配置需要连接的数据库:然后打开[PL/SQL]数据库工具:接着在SQL输入界面输入需需要创建的存储过程:最后测试编写的存储过程即可. oracle存储过程是: 1.通过OR ...

  4. java 创建临时表 oracle_在ORACLE存储过程中创建临时表

    在ORACLE存储过程中创建临时表 存储过程里不能直接使用DDL语句,所以只能使用动态SQL语句来执行 --ON COMMIT DELETE ROWS 说明临时表是事务指定,每次提交后ORACLE将截 ...

  5. oracle存储过程循环输入数据,oracle 存储过程循环插入数据

    Database 物理文件 控制文件(Control File) 1.一个数据库至少需要一个控制文件 2.控制文件(二进制文件)是一个很小的(通常是数据库中最小的)文件,大小一般在1-5M左右. 3. ...

  6. oracle 存储过程红叉,oracle 存储过程基本语法及问题

    存储过程 注 : (1)在procedure中想用ddl,就必须用execute   immediat 'create table text1(id int not null primary key) ...

  7. mysql与oracle存储过程_mysql与oracle存储过程对比

    一.创建存储过程语句不同 mysql DROP PROCEDURE IF EXISTS `SD_USER_P_ADD_USR`; create procedure P_ADD_FAC(id_fac_c ...

  8. oracle存储过程输出调试,Oracle存储过程的调试方法

    Oracle存储过程可以根据我们的需求进行调试修改,下面就为您介绍如何修改一个Oracle存储过程的实际操作步骤,供您参考学习. 如果你要执行Oracle存储过程,首先你需要写出一个关于输出的字符串& ...

  9. oracle存储过程备份,利用ORACLE存储过程与JOB结合实现对数据表自动备份

    烈火网(LieHuo.Net)教程 利用ORACLE存储过程与JOB结合实现对数据表自动备份. 1.创建存储过程 create or replace procedure data_auto_backu ...

最新文章

  1. javascript回调函数笔记
  2. JiBX1.2 处理XML
  3. stm32单片机屏幕一直闪_stm32实现LED灯的闪烁
  4. linux-常用指令3
  5. 6.排序算法最优的时间复杂度
  6. 怎么看rx580是不是470刷的_怎么看钻石是不是奶咖钻,钻石证书上可以看出奶咖钻石吗...
  7. [置顶]       ibatis做分页
  8. ftp限流java,FTP流量限制的方法
  9. nignx处理Html中SSI技术代码注意事项
  10. php 批量改文件名后缀名_PHP 批量修改文件后缀名
  11. crossdomain.xml跨越
  12. c++中delete和析构函数之间的区别
  13. apple 苹果官方的demo 下载地址
  14. 思科CCNP在OSPF中设置LSA的简单命令汇总
  15. Blazor是春天还是寒风里的挣扎
  16. python中等好用什么表示_描写中等的词语
  17. spark2.2以后版本任务调度将增加黑名单机制
  18. paddle 标注_一看就会,手把手教你编程,批量文章标注拼音(附源码)
  19. 计算机语言低下限高上限,2018年各地高考作文嘤酱不负责的胡乱哔哔
  20. 想要软件外包,企业开发APP和小程序如何才能不吃亏?

热门文章

  1. C语言并发执行的进程怎么写,多进程并发写文件 多进程并发售票 用c语言写
  2. jakarta_适用于Java EE / Jakarta EE开发人员的Micronaut
  3. mongodb安装_MongoDB事实:商品硬件上每秒插入80000次以上
  4. html5混合编写,Html5混合开发环境的搭建
  5. linux wget返回值_Linux中wget用法
  6. redis bind多个ip_Spring Boot 中 Redis 的使用
  7. android 8.0的imei简书,Android 8.0通知栏渠道,渠道组的适配和使用
  8. 聊一聊:你觉得这个新Logo值200万吗?
  9. 大佬的设计模式PDF学习笔记!
  10. 面试:什么是序列化,怎么序列化,为什么序列化,反序列化会遇到什么问题,如何解决?...