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

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 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)