注:本文来源于  深圳gg  《 java如何将一个List传入Oracle存储过程   》

一:数据库端建一个PL/SQL的数组。

 CREATE OR REPLACE TYPE tables_array AS VARRAY(100) OF VARCHAR2(32) ;

 drop table test purge;
create table test
(
name varchar2(32)
); create or replace procedure t_list_to_p(arr_t in tables_array) is
begin
for i in arr_t.first .. arr_t.last loop
insert into test values(arr_t(i));
end loop;
commit;
end t_list_to_p;

 

二:java代码:

  import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List; import oracle.sql.ARRAY;
import oracle.sql.ArrayDescriptor; public class TestListToProcedure {
static final String driver_class = "oracle.jdbc.driver.OracleDriver";
static final String connectionURL = "jdbc:oracle:thin:@10.150.15.150:1521:orcl";
static final String userID = "test";
static final String userPassword = "test";
public void runTest() {
Connection con = null;
CallableStatement stmt = null ;
try {
Class.forName (driver_class).newInstance();
con = DriverManager.getConnection(connectionURL, userID, userPassword);
stmt = con.prepareCall("{call t_list_to_p(?)}");
ArrayDescriptor descriptor = ArrayDescriptor.createDescriptor("TABLES_ARRAY",con);
List list = new ArrayList();
list.add("张三");
list.add("李四");
list.add("王五");
ARRAY array = new ARRAY(descriptor,con,list.toArray());
stmt.setArray(1, array);
stmt.execute();
} catch (SQLException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}finally{
if(stmt != null){
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(con != null){
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
} public static void main(String[] args) {
TestListToProcedure testListToProcedure = new TestListToProcedure();
testListToProcedure.runTest();
} }

 

 

 

 

 

 

 

 

 

 

java如何将一个List传入Oracle存储过程的更多相关文章

  1. java怎样将一个List传入Oracle存储过程

    java怎样将一个List传入Oracle存储过程.样例例如以下: 数据库端建一个PL/SQL的数组. CREATE OR REPLACE TYPE tables_array AS VARRAY(10 ...

  2. java怎样将一组对象传入Oracle存储过程

    注:本文来源 <  java怎样将一组对象传入Oracle存储过程  > java怎样将一组对象传入Oracle存储过程 java怎样将一组对象传入Oracle存储过程.须要注意的是jar ...

  3. 数组做为参数传入Oracle存储过程操作数据库

    p { margin-bottom: 0.25cm; direction: ltr; color: rgb(0, 0, 0); line-height: 120%; text-align: justi ...

  4. Oracle存储过程创建及调用

    在大型数据库系统中,有两个很重要作用的功能,那就是存储过程和触发器.在数据库系统中无论是存储过程还是触发器,都是通过SQL 语句和控制流程语句的集合来完成的.相对来说,数据库系统中的触发器也是一种存储 ...

  5. Oracle存储过程创建及调用(转)

    在大型数据库系统中,有两个很重要作用的功能,那就是存储过程和触发器.在数据库系统中无论是存储过程还是触发器,都是通过SQL 语句和控制流程语句的集合来完成的.相对来说,数据库系统中的触发器也是一种存储 ...

  6. oracle——存储过程参数

    oracle 存储过程类型: 1.in:输入类型,即由应用程序将数据传入oracle存储过程中:这种参数在存储过程中是只读参数,在存储过程中无法对该类型的参数进行修改: 2.out:输出参数,是在存储 ...

  7. 用java调用oracle存储过程总结(转)

    //1.call+包名+存储过程名(传入.传出值用?) String str="{call SMSBUSINESS.deleteZhZMember(?,?,?)}"; //2.建立 ...

  8. 用java调用oracle存储过程总结

    以前一直没有动存储过程是用来干嘛的,后来请教朋友才换为自己的理解方式,用自己通俗的语言来说,就是把sql语句换为一个过程,也可以说是一个方法,每次直接给参数调用就好,使用存储过程查询速度快,系统只编译 ...

  9. 用java 调用oracle存储过程总结

    SSM-Mybatis调用Oracle存储过程返回结果集(游标)示例 https://www.jianshu.com/p/0ae6d9d66d61 用java调用oracle存储过程总结 //1.ca ...

随机推荐

  1. spring data jpa 关键字 命名

    http://docs.spring.io/spring-data/mongodb/docs/current/reference/html/#repository-query-keywords

  2. 20155324 2016-2017-2 《Java程序设计》第4周学习总结

    20155324 2016-2017-2 <Java程序设计>第4周学习总结 教材学习内容总结 继承 面对对象中,子类继承父类,避免重复定义行为就使用继承.在Java中,继承时使用exte ...

  3. ubuntu安装matplotlib一些坑

    ubuntu16.04,python2.7 安装matplotlib, 1.在root权限下执行命令 pip install matplotlib==1.5.1 这里有个困扰我一个星期的问题,系统都被 ...

  4. Hadoop思维导图之概述

  5. mui列表系列

    详细操作见代码: <!doctype html> <html> <head> <meta charset="UTF-8"> < ...

  6. python后端将svc文件数据读入数据库具体实现

    如何用python将svc文件的数据读入到MySQL数据库里,在此直接上代码了,感兴趣的朋友可以贴代码测试: import pandas as pd import os from sqlalchemy ...

  7. Maven SSH三大框架整合的加载流程

    <Maven精品教程视频\day02视频\03ssh配置文件加载过程.avi;> 此课程中讲 SSH三大框架整合的加载流程,还可以,初步接触的朋友可以听一听. < \day02视频\ ...

  8. python问题:TypeError: a bytes-like object is required, not 'str'

    源程序: import socket target_host = "www.baidu.com" # 127.0.0.1 target_port = 80 # 建立一个socket ...

  9. Css - 三大特性

    css - 三大特性 1.层叠性 如果通过两个相同选择器设置了同一个元素的某个相同的css属性,按照css相同属性的出现顺序,后面的样式会覆盖前面的样式 2.继承性 祖先元素的关于文本的样式会遗传给后 ...

  10. 20165234 《Java程序设计》第二周课下作业

    1. 教材代码完成情况测试P14 把100改为自己的后四位学号,编译运行Kernighan.java 代码的功能是从给定一个数字,实现从1依次加到此数的和. 如下是我用命令行实现代码的编译与运行. 2 ...