使用JDBC更新ORACLE数据 引起的问题

问题描述

程序需求:程序每5分钟,要更新一次数据库里表的数据,每一次要执行38条SQL语句,每一条SQL语句要更新大约16000多个字段,在运行当中出现了这样一个问题,大约运行10个多小时以后,程序就卡死了,程序什么异常都没抛出,控制台也没有异常抛出,诚心请教高手,在这方面有没有更好的解决方案。try{Longstart=System.currentTimeMillis();conn.setAutoCommit(false);stmt=conn.createStatement();//listSql是保存SQL的集合for(i=0;i<listSql.size();i++){System.out.println(listSql.get(i));//stmt.executeUpdate(sql.get(i).toString());stmt.addBatch((String)listSql.get(i));}int[]intNumber=stmt.executeBatch();stmt.clearBatch();conn.commit();conn.setAutoCommit(true);Longend=System.currentTimeMillis();System.out.println("批量执行"+(end-start)+"毫秒");System.out.println("保存成功");

解决方案

解决方案二:
看看连接有没有关闭
解决方案三:
...
解决方案四:
listSql用完有没有clear()清空。Statement用完最好关闭。程序卡死可能是其他代码的原因。
解决方案五:
所有的关闭,我都从控制台打印出过,都被清空了。listSql也被清空在控制台被卡只是执行一条SQL的时候被卡死了

时间: 2024-09-30 21:13:11

使用JDBC更新ORACLE数据 引起的问题的相关文章

诚心请教高手 :使用JDBC更新ORACLE数据

问题描述 程序需求:程序每5分钟,要更新一次数据库里表的数据,每一次要执行38条SQL语句,每一条SQL语句要更新大约16000多个字段,在运行当中出现了这样一个问题,大约运行10个多小时以后,程序就卡死了,程序什么异常都没抛出,控制台也没有异常抛出,诚心请教高手,在这方面有没有更好的解决方案.try{Longstart=System.currentTimeMillis();conn.setAutoCommit(false);stmt=conn.createStatement();//listS

怎样用 datgridview 更新oracle数据表

问题描述 怎样用datgridview更新oracle数据表,最好有代码.谢谢了 解决方案 解决方案二:ding

java中用jdbc获取oracle数据分两次返回,两次返回的时间间隔为两个小时

问题描述 近日,在生产系统出现了三次同样的问题:问题如下:有个每十分钟起的一个java线程,这个线程启动一个任务,任务的作用是通过spring3.1.1的jdbc包的连接池向oracle(11gR2版本)小版本号为11.2.0.1,发送多个查询,其中某个查询假如此查询会返回10w条记录,但是查询瞬间会先返回8万条记录,在整整两个小时后会将剩下的2w条数据给完整返回.上述oracle出现的情况是oracle工程师经过后台分析和看日志之后给出的详细数据,整整两个小时后剩余的数据才返回.此种情况在生产

为什么jdbc查询Oracle数据表只能查询到第一条数据

问题描述 package 测试包;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;public class Oracle存储过程 {public static void main(String[] arg

【oracle】更新大批量数据变更步骤

    生产环境中遇到更新或者删除大批量数据的时候,不能直接进行操作,要批量进行. 1 获取要进行更新的数据的主键,保存为文本文件或者csv文件.这一步一定要正确,否则下面的操作会造成更新错误的数据,造成数据不一致! 2 创建临时表并将获取的数据主键导入到创建! #!/bin/sh  # Created by yangql on 2011-11-23 # Parameters  ## . /home/oracle/.profile ORA_USER=yang ORA_PASSWD=yang TO

java-使用servlet,jdbc将mysql中数据显示在jsp页面中,且实现直接更新数据库数据

问题描述 使用servlet,jdbc将mysql中数据显示在jsp页面中,且实现直接更新数据库数据 我从网上找了几篇,大多都是在JSP操作的,我想仿照http://blog.csdn.net/kakukeme/article/category/819230 该网址的例子做,但是数据却没有显示出来,所以想问下各位有没完整的可以运行的实例,给我一个. 解决方案 参考一下吧:http://download.csdn.net/detail/qq_19558705/9393750 解决方案二: ?用se

通过JDBC操纵Oracle数据库LOB字段的几种情况分析

oracle|数据|数据库 通过JDBC操纵Oracle数据库LOB字段的几种情况分析纵横软件制作中心 雨亦奇2003-6-10 15:14:19在Oracle中,LOB(Large Object,大型对象)类型的字段现在用得越来越多了.因为这种类型的字段,容量大(最多能容纳4GB的数据),且一个表中可以有多个这种类型的字段,很灵活,适用于数据量非常大的业务领域(如图象.档案等).而LONG.LONG RAW等类型的字段,虽然存储容量也不小(可达2GB),但由于一个表中只能有一个这样类型的字段的

展示JDBC存取大型数据对象LOB情况的示范类

展示JDBC存取ORACLE大型数据对象LOB几种情况的示范类 import java.io.*; import java.util.*; import java.sql.*; public class LobPros { /** * ORACLE驱动程序 */ private static final String DRIVER = "oracle.jdbc.driver.OracleDriver"; /** * ORACLE连接用URL */ private static fina

通过JDBC操纵Oracle数据库LOB字段的分析

在Oracle中,LOB(Large Object,大型对象)类型的字段现在用得越来越多了.因为这种类型的字段,容量大(最多能容纳4GB的数据),且一个表中可以有多个这种类型的字段,很灵活,适用于数据量非常大的业务领域(如图象.档案等).而LONG.LONG RAW等类型的字段,虽然存储容量也不小(可达2GB),但由于一个表中只能有一个这样类型的字段的限制,现在已很少使用了.  LOB类型分为BLOB和CLOB两种:BLOB即二进制大型对象(Binary Large Object),适用于存贮非