Oracle bulk Insert的用法
来源:互联网 发布:sql 转日前字符串 编辑:程序博客网 时间:2024/05/18 03:07
首先创建一个简单的数据库表:
create table T_NAME
(
id NUMBER not null,
name VARCHAR2(20)
)
alter table T_NAME
add constraint PRIMARY_ID primary key (ID);
字段
字段长度
Nullable
Key
ID
NUMBER(6)
Not Nulll
Primary
NAME
varchar2(20)
根据相应的表结构创建过程
create or replace type ID_TABLE is table of number(10);
create or replace type NAME_TABLE is table of varchar2(20);
create or replace procedure pro_foralls_insert(v_1 ID_TABLE ,v_2 NAME_TABLE )
as
c integer;
begin
forall i in 1.. v_1.count
insert into T_NAME values(v_1(i),v_2(i));
end;
接着就写相应的java程序做测试
import java.sql.*;
import oracle.sql.ARRAY;
import oracle.sql.ArrayDescriptor;
public class TestTest {
private static final String sql="select max(id) from T_NAME";
private static final String jdbcUrl="jdbc:oracle:thin:@10.108.67.51:1521:orcl";
private static final String jdbcUser="b2cmonitor";
private static final String jdbcPassword="b2cmonitor";
private static int maxID;
public TestTest() {
Connection conn = null;
Statement stmt=null;
CallableStatement cstmt = null;
ResultSet rs=null;
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection(jdbcUrl, jdbcUser,jdbcPassword);
conn.setAutoCommit(false);
stmt=conn.createStatement();
rs=stmt.executeQuery(sql);
while(rs.next()){
maxID=rs.getInt("MAX(ID)");
}
}
catch (ClassNotFoundException ex) {
ex.printStackTrace();
}
catch (SQLException ex) {
ex.printStackTrace();
}
ArrayDescriptor a = null;
ArrayDescriptor b = null;
Object[] s1 = new Object[100000];
Object[] s2 = new Object[100000];
System.out.println(maxID);
for (int i = 0; i < 100000; i++) {
s1[i] = i+1+maxID;
s2[i] = "SSSS";
}
try {
a = oracle.sql.ArrayDescriptor.createDescriptor("ID_TABLE", conn);
b = oracle.sql.ArrayDescriptor.createDescriptor("NAME_TABLE", conn);
ARRAY a_test = new ARRAY(a, conn, s1);
ARRAY b_test = new ARRAY(b, conn, s2);
cstmt = conn.prepareCall("{ call pro_foralls_insert(?,?) }");
cstmt.setObject(1, a_test);
cstmt.setObject(2, b_test);
System.out.println(System.currentTimeMillis());
cstmt.execute();
conn.commit();
rs.close();
rs=null;
stmt.close();
stmt=null;
cstmt.close();
cstmt=null;
conn.close();
conn=null;
} catch (SQLException e) {
e.printStackTrace();
}
}
public static void main(String args[]) {
TestTest a = new TestTest();
}
}
- Oracle bulk Insert的用法
- Bulk Insert的用法
- Bulk Insert的用法
- Bulk Insert的用法
- Bulk Insert的用法
- bulk insert 用法
- bulk insert 和 insert bulk的区别
- BULK INSERT 用法小实例。
- Bulk Insert的用法文章3篇 (文件不固定)
- Oracle 之 bulk collect 的用法
- Oracle 之 bulk collect 的用法
- Oracle 之 bulk collect 的用法
- Oracle 的 bulk collect 和 forall 用法
- oracle bulk collect用法
- oracle 利用bulk collect into 批量insert
- Oracle Multitable INSERT 的用法
- BULK INSERT
- BULK INSERT
- ffmpeg decode raw h264
- static 全局变量和普通全局变量
- C++中数组作函数参数的问题
- Java Web项目中连接Access数据库
- UML——RUP
- Oracle bulk Insert的用法
- 白话经典算法系列之八 MoreWindows白话经典算法之七大排序总结篇
- [sicily online]1007. To and Fro
- Visual Studio 2010 所有版本 中文 英文 下载,激活,序列号,注册码,下载地址
- MySQL 优化设置步骤(这方法太有效了,已经验证!)
- 白话经典算法系列之九 从归并排序到数列的逆序数对(微软笔试题)
- JSTL时间和数字型格式化
- Ext tree checked
- 精益创业者怎么做好产品?