FROM: http://www.cnblogs.com/wangyayun/p/4514411.html

//批量添加20000条数据用时8秒。
try {
String url = "jdbc:oracle:thin:@IP:1521:orcl"; // orcl为数据库的SID
String user = "oracle";
String password = "oracle";
StringBuffer sql = new StringBuffer();
sql.append("insert into ex_log (EX_LOG_ID,EX_LOG_DATE) values (?,?)");
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con = (Connection) DriverManager.getConnection(url,user,password);
// 关闭事务自动提交
con.setAutoCommit(false); Long startTime = System.currentTimeMillis();
PreparedStatement pst = (PreparedStatement) con.prepareStatement(sql.toString());
for (int i = 0; i < list.size(); i++) {
ExLog exLog = (ExLog)list.get(i);
pst.setString(1, exLog.getExLogId());
pst.setString(2, exLog.getExLogDate());
// 把一个SQL命令加入命令列表
pst.addBatch();
}
// 执行批量更新
pst.executeBatch();
// 语句执行完毕,提交本事务
con.commit();
Long endTime = System.currentTimeMillis();
System.out.println("用时:" + (endTime - startTime));
pst.close();
con.close();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
-------------------------------------------------------------------------------------
下面是我的实例
        Connection conn = null;
PreparedStatement stmt = null; StringBuffer sql = new StringBuffer();
sql.append("merge into DEEPDATA.WARNING_MES t1 ");
sql.append("using (select ? as CUSTOMER_ID,? as added,? as integrated_risk,? as inner_risk,? as industry_risk,? as region_risk from dual) t2 ");
sql.append("on (t1.CUSTOMER_ID=t2.CUSTOMER_ID) ");
sql.append("when matched then ");
sql.append("update set ");
sql.append("t1.added = t2.added,t1.integrated_risk = t2.integrated_risk,t1.INNER_RISK = t2.INNER_RISK,t1.industry_risk = t2.industry_risk,t1.region_risk = t2.region_risk ");
sql.append("when not matched then ");
sql.append("insert (t1.CUSTOMER_ID,t1.added,t1.integrated_risk,t1.INNER_RISK,t1.industry_risk ,t1.region_risk) ");
sql.append("values(t2.CUSTOMER_ID,t2.added,t2.integrated_risk,t2.INNER_RISK,t2.industry_risk ,t2.region_risk)"); try {
conn = DriverManager.getConnection(url, dbUser, dbPassword);
// 关闭自动提交;
conn.setAutoCommit(false);
stmt = conn.prepareStatement(sql.toString()); Timestamp timestamp = Timestamp.valueOf(GetDate
.getTodayDate_FullFormat()); if (result != null && result.size() > 0) {
double tmpValue;
for (Map<String, Object> map : result) {
tmpValue = Double.parseDouble(map.get(
ConstValue.IntegratedRisk).toString());
if (specialHandle.contains(map.get("id").toString())) {
tmpValue = tmpValue * 1.72;
} stmt.setInt(1, Integer.parseInt(map.get("id").toString()));
stmt.setTimestamp(2, timestamp);
stmt.setDouble(3, tmpValue);
stmt.setDouble(4, Double.parseDouble(map.get(
ConstValue.InnerRisk).toString()));
stmt.setDouble(5, Double.parseDouble(map.get(
ConstValue.IndustryRisk).toString()));
stmt.setDouble(6, Double.parseDouble(map.get(
ConstValue.RegionRisk).toString()));
stmt.addBatch();
}
stmt.executeBatch();
conn.commit();
} stmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}

[转载]Oracle批量执行的更多相关文章

  1. Oracle批量执行脚本文件

    以下是Oracle批量执行脚本文件的步骤和方法 1.创建脚本文件(xx.sql): 例如文件CreateTable Create table tb1( id varchar2(30), Name va ...

  2. Oracle批量执行SQL语句

    SQLServer的场合,用";"分割SQL语句即可正常执行. Oracle的场合,会报ORA-00911错误.Oracle中需要加上begin end才正确. Dim Sql A ...

  3. 代码中批量执行Oracle SQL语句

    今天在写一个工具(winform),作用是批量的INSERT OR  UPDATE ORACLE数据库中的一个表. 执行的时候老是报错“[911] ORA-00911: invalid charact ...

  4. Oracle命令行模式,批量执行SQL脚本

    由于项目不同,使用的数据库也不一样,通常MySQL 比较方便简介,相对而言Oracle比较繁琐一点,尤其是堡垒机的连接的时候, 通过堡垒机登陆,数据库服务器,通过下面的脚本执行进入到命令行模式执行SQ ...

  5. Selenium2+python自动化53-unittest批量执行(discover)【转载】

    前言 我们在写用例的时候,单个脚本的用例好执行,那么多个脚本的时候,如何批量执行呢?这时候就需要用到unittet里面的discover方法来加载用例了. 加载用例后,用unittest里面的Text ...

  6. oracle 之 cursor:创建存储过程批量执行DDL语句

    说明:使用此过程可任意执行批量DDL语句,调用DDL查询语句时,注意转义字符,使用 ' 转义! 需求:批量删除以CUR_TEST开头的表,且有日志记录. 环境准备:建几张以CUR_TEST开头测试表. ...

  7. java 操作Oracle 批量入库的问题

    java 操作Oracle 批量入库的问题 先说下我运行的环境: Windows7 64位操作系统 (四核)Intel i5-2300 CPU @2.80GHz 内存4G 硬盘1T Jdk1.6+My ...

  8. shell调用sqlplus批量执行sql文件

    在最近的工作中,经常需要批量执行一些DML, DDL, PL/SQL语句或导入一些Function, Procedure.因为support的国家比较多,常常需要一个登陆到一个国家的数据库上执行完成后 ...

  9. SQL*PLUS中批量执行SQL语句

    SQL*PLUS中批量执行SQL语句 今天由于工作的需要,要在CMD中批量执行大量的SQL语句,对于Oracle学习还处在入门阶段的我,只能硬着头皮到处去寻找资料(主要是网络资料,也包括自己的电子书) ...

随机推荐

  1. Github上的几个C++开源项目

    Github上的几个C++开源项目 http://blog.csdn.net/fyifei0558/article/details/47001677 http://www.zhihu.com/ques ...

  2. zlib库剖析(1):实现概览

    zlib库剖析(1):实现概览 http://blog.csdn.net/zhoudaxia/article/details/8034606 http://blog.chinaunix.net/uid ...

  3. Jmeter接口测试常见的乱码问题三种解决方法

    使用Jmeter时经常遇到中文乱码问题,下面总结三种常用的解决方式. 1. 2.在Jmeter安装文件bin中找到jmeter.properties,打开jmeter.properties,搜索“IS ...

  4. 【bzoj2242】计算器

    #include<bits/stdc++.h> #define inf 1000000000 using namespace std; typedef long long ll; ?a:g ...

  5. 记一次学习SpringBoot RequestBodyAdvice ResponseBodyAdvice RestControllerAdvice

    今天老板给我了一套代码,然后我就拿过去研究,代码的风格是SSM + Shiro + nginx + SpringBoot的MVC架构风格,springboot,是当下很火的一个框架,配合springc ...

  6. 《简明python教程》笔记三

    图形软件(GUI工具) 可供选择的GUI: 一.PyQT 是Qt工具包的python绑定.Qt工具包是构建KDE的基石.linux下使用免费,windows下使用收费. 二.PyGTK 是GTK+工具 ...

  7. BZOJ 1800

    1800: [Ahoi2009]fly 飞行棋 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 1622  Solved: 1293[Submit][St ...

  8. 项目问题整理(it)

    1,很(屎)优(一)雅(样)的IE9兼容问题: --webuploader在webkit浏览器中自动使用h5上传,但在IE中需要配置支持flash,特别注意两点: ①Upload.swf路径问题不正确 ...

  9. selenium+python在mac环境上的搭建【转载】

    前言 mac自带了python2.7的环境,所以在mac上安装selenium环境是非常简单的,输入2个指令就能安装好 需要安装的软件: 1.pip 2.selenium2.53.6 3.Firefo ...

  10. 构建maven动态web 工程

    项目构建 总体参考: http://www.java2blog.com/2015/09/how-to-create-dynamic-web-project-using.html https://sta ...