提高oracle海量数据写入效率
来源:互联网 发布:java滑动验证码源代码 编辑:程序博客网 时间:2024/06/05 03:46
以结构数组的方式,从java传递到oracle的存储过程。
一:oracle部分
1,首先在oracle中创建对应的type
CREATE OR REPLACE TYPE oracle用户名.TY_REG_DATAAS OBJECT
(
name varchar2(10),
age varchar2(10)
)
2,创建type实例
CREATE OR REPLACE TYPE oracle用户名.ARRAY_REG_DATAAS table OFTY_REG_DATA
3,存储过程
PROCEDURE saveInfo(arr_test_data in ARRAY_REG_DATA)
IS
begin
if arr_test_data.COUNT !=0 then
for j in 1.. arr_kk_data.COUNT loop
insert into tbTest (name,age) values (arr_test_data(j).name,arr_test_data(j).age);
end loop;
end if;
end;
end saveInfo;
二: java代码片段
public static int InsertInfo(String strInfo) throws Exception {
PreparedStatement cstmt=null;
//-------1------------oracle 存储过程-----------------------------------------------------
String sqlProcedure = "{call saveInfo(?)}";
//------2-----------与数据库建立连接--------------------------------------------------
// 注:本计划使用池化的,但未能成功,从网上查了些资料,说是使用池化进行传递结构数组会有问题,无奈只能使用此方法与数据库建立连接
String url = "jdbc:oracle:thin:@localhost:1521:orcl";
Connection con = DriverManager.getConnection(url, "oracle用户名", "密码");
cstmt = con.prepareStatement(sqlProcedure);
//------3--------------创建结构数据对象-------------------------------------------------
Object[][] objTest = null;
oracle.sql.ArrayDescriptor arrTest = oracle.sql.ArrayDescriptor.createDescriptor("ARRAY_REG_DATA",con);
oracle.sql.ARRAY arrayTest;
//-----4--------------传值-------------------------------------------------------------------
for(int i=0;i<99999;i++){
objTest[i][0] = "小明";
objTest[i][1] = "10";
}
arrayTest = new oracle.sql.ARRAY(arrTest, con, objTest);
cstmt.setArray(1,arrayTest);
cstmt.execute();
}
备注:如果在入库的过程中发现字符串的值没有入进去,请检查有没有加载该类库nls_charset12.jar
- 提高oracle海量数据写入效率
- 怎么提高ArcSDE for Oracle写入地理数据库的效率
- 怎么提高ArcSDE for Oracle写入地理数据库的效率
- 提高ArcSDE GeoDataBase写入效率
- SQL Server海量数据如何提高查询效率几点建议
- 提高Oracle查询效率
- oracle提高查询效率
- Oracle提高查询效率
- oracle提高查询效率
- oracle提高查询效率
- oracle提高查询效率
- 提高Oracle查询效率
- 三个提高Oracle处理大量数据效率的有效途径
- Hbase 提高写入效率之 预分区
- 提高oracle的sql效率
- 【转】oracle提高查询效率
- oracle模糊查询效率提高
- oracle 提高查询效率(转)
- 一个关于memset使用的问题
- HLA时间管理机制
- cocos2d-x 中CCLayer runAction没有效果 原因
- 计算机网络的五层工作流程
- [vim]vim中复制粘贴
- 提高oracle海量数据写入效率
- Shell 脚本 遍历文件夹
- SSH框架
- Google Reader关闭,RSS订阅将用什么?
- PCB设计相关经验分享【From EDN China】
- python中的进制转换
- Emit学习-基础篇-为动态类添加属性、构造函数、方法
- Eclipse快捷键大全(转载)
- django学习笔记-中文显示