毕业论文开发语言企业开发JAVA技术.NET技术WEB开发Linux/Unix数据库技术Windows平台移动平台嵌入式论文范文英语论文
您现在的位置: 毕业论文 >> WEB开发 >> 正文

插入大量数据到Oracle数据库中ORA-01000: 超出打开游标的最大数

更新时间:2012-5-18:  来源:毕业论文

近日做一个短信平台的项目,需要将几十万的数据插入到Oracle数据库中,下面的代码在一百条数据下是正确执行的,但五百条的时候就报错。所报的错误为“java.sql.SQLException: ORA-00604: 递归 SQL 级别 1 出现错误
ORA-01000: 超出打开游标的最大数”,求大侠指教

Java codetry {
    conn = getDba().getConnection();
    conn.setAutoCommit(false);
    for (TblMmsImpPhone importNum:numList) {
        String sql = "insert into tbl_mms_importphone (id,phonenum,flag,temid) values(SEQ_TBL_IMPORTPHONE.nextval,'"+ importNum.getPhonenum()+ "',0,"+ importNum.getTemId() + ")";
        ps = conn.prepareStatement(sql);
        count += ps.executeUpdate();
        if ((count % 100) == 0) {
            conn.commit();
        }
    }
           
conn.commit();
conn.setAutoCommit(true);
} catch (Exception e) {
    success = false;
    try {
        conn.rollback();
    } catch (SQLException e1) {
         e1.printStackTrace();
    }
    e.printStackTrace();
} finally {
    close(ps, conn);
}
 
首先把insert语句改成insert into tbl_mms_importphone (id,phonenum,flag,temid) values(?,?,?,?)的形式,这样可以减少sql编译的时间。
其次改成batch update的方式
ps = conn.prepareStatement(sql);
ps.addBatch();
判断batch数目然后ps.executeBatch(); 

设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优尔论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。