軒轅劍 2012-05-14 18:06
浏览 514
已采纳

oracle数据库cursor问题,超出打开最大cursor数

我创建了一个CallableStatement用来将给object表插入数据时,将生成的id返回。
[code="java"]String objectSQL = "begin insert into object(id,name,meta_type,status,create_date,create_user_id,last_update_date,province,city,street,community,grid,operator_id) values (null,?,?,?,?,?,?,?,?,?,?,?,?) returning id into ?;end;";[/code]
[code="java"]CallableStatement objectCallPS = conn.prepareCall(objectSQL);[/code]

插入的数据是通过另外一个查询做的
[code="java"]String qsql = "select "+allkey+" from " + reportTaskVO.getTableName() + " where update_flag=" + StatusUtil.NEW_DATA +" group by "+allkey;// and[/code]
[code="java"] ResultSet rs = st.executeQuery(qsql);[/code]

当我迭代这个ResultSet的时候,执行一部分后,就会抛出超出最大cursor数的异常。
[code="java"]objectCallPS.execute();[/code]

之前试过修改系统中open_cursors的值,但发现,数据再多点,还是会抛出这个异常。

各位高手,知道有什么好的解决方法吗?

异常信息如下:
[code="java"]java.sql.SQLException: ORA-01000: 超出打开游标的最大数
ORA-06512: 在 "SYSADMIN.OBJECT_TRIGGER", line 2
ORA-04088: 触发器 'SYSADMIN.OBJECT_TRIGGER' 执行过程中出错
ORA-06512: 在 line 1[/code]

  • 写回答

2条回答

  • zyn010101 2012-05-16 09:29
    关注

    10000条数据,分十页,每次1000条,每次往游标中放1000条,分十次循环。当然了,分多少页依赖于数据的总条数,计算这个应该不难吧?

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 oracle集群安装出bug
  • ¥15 关于#python#的问题:自动化测试