java向存储过程传递集合类型的变量
来源:互联网 发布:知天下资源吧解压密码 编辑:程序博客网 时间:2024/05/18 03:13
Oracle中把Array类型作为参数传入存储过程并用Java对其进行调用的示例是本文我们主要要介绍的内容,接下来我们就开始介绍这一过程.
使用Oracle Database 11g Enterprise Edition Release 11.2.0.1.0. 步骤:
1. 创建自定义的类型.由于Oracle没有提供现成的array类型,这里用table类型来模拟.
CREATE OR REPLACE TYPE varchar_array is Table OF varchar2(128) 创建后,varchar_array是一个table,里面元素的类型为varchar2(128).
2. 创建一个存储过程test1. 这个过程接受一个上面创建的varchar_array类型作为输入参数. 在过程体中,通过一个循环遍历传入的array中的每一个元素, 插入到一个表tb中:
create or replace procedure test1(arr in varchar_array) is begin
FOR i IN arr.first .. arr.last LOOP
insert into tb values(arr(i));
END LOOP;
end test1;
3. 数据库这边的基本上完事了. Java程序如下, 基本上和普通程序差不多:
String driver = "oracle.jdbc.driver.OracleDriver";
String strUrl = "jdbc:oracle:thin:@192.168.1.199:1521:orcl";
Statement stmt = null;
ResultSet rs = null;
Connection conn = null;
try { Class.forName(driver);
conn = DriverManager.getConnection(strUrl, "user", "pass");
CallableStatement proc = null;
proc = conn.prepareCall("{ call test1(?) }");
//调用存储过程test1
//不一样的地方,获得上面创建的自定义的类型,注意大小写
ArrayDescriptor descriptor = ArrayDescriptor.createDescriptor("VARCHAR_ARRAY",
conn);
List list = new ArrayList();
list.add("a");
list.add("b");
//把list中的元素转换成自定义的类型
ARRAY array = new ARRAY(descriptor, conn, list.toArray());
proc.setArray(1,
array);
proc.execute();
catch (Exception ex)
{
ex.printStackTrace();
} finally
{
.....
各种 close
......
}
执行该Java程序,查询表tb,程序中的元素正常插入.
以上就是Oracle中把Array类型作为参数传入存储过程,并用Java对其进行调用的示例的全部,本文我们就介绍到这里了,希望本次的介绍能够对您有所收获!
原文出自【比特网】,转载请保留原文链接:http://soft.chinabyte.com/database/255/12193755.shtml
- java向存储过程传递集合类型的变量
- Java 调用存储过程中传递集合类型处理方法
- Java调用Oracle集合类型输出参数的存储过程
- Java调用Oracle集合类型输出参数的存储过程
- java中调用存储过程并传递list集合参数的方法
- 关于向Oracel存储过程传集合的代替方法
- java传递数组类型参数给oracle存储过程
- 向存储过程传递大文本数据
- Oracle集合类型输出参数的PL/SQL存储过程及其Java调用
- Oracle集合类型输出参数的PL/SQL存储过程及其Java调用
- Oracle集合类型输出参数的PL/SQL存储过程及其Java调用
- Oracle集合类型输出参数的PL/SQL存储过程及其Java调用
- Oracle集合类型输出参数的PL/SQL存储过程及其Java调用
- 用JDBC给存储过程传递数组类型的参数
- 将java的集合转换为数据库集合类型 解决weblogic调用存储过程的时候,返回值乱码问题
- pl/sql存储过程返回record类型和集合类型的结果,Java里如何调用呢
- 变量的存储类型
- 变量的存储类型
- 10亿元的经验
- 文件操作
- ImageView的属性android:scaleType
- android游戏开发自学笔记2 基础知识
- 禁止U盘拷贝
- java向存储过程传递集合类型的变量
- Linux下ALSA声卡编程
- Service 与 异步Thread 选哪个
- 经典排序算法之插入排序
- php yii框架 目录说明
- (零)我为什么要写Linux学习笔记?
- js 深度克隆
- FFMPEG AVPacket
- Linux中profile、bashrc、bash_profile之间的区别和联系