本站首页    管理页面    写新日志    退出

The Neurotic Fishbowl

[Java报表软件—技术知识]报表怎么做FineReport数据连接之游标
FineReport——报表技术领跑者 发表于 2015-5-11 17:35:32

报表怎么做FineReport数据连接之游标 1. 概念 在数据库中, 游标是一个十分重要的概念。游标是一种能从包括多条数据记录的结果集中,每次提取一条记录的机制。 用SQL语言从数据库中检索数据后,结果放在内存的一块区域中,往往是一个含有多个记录的集合。游标机制允许用户在此结果集内逐行访问每条记录,并按照用户自己的意愿来显示和处理这些记录。 2. 标准写法(以oracle为例) declare ursor mycur is select *from books;----定义游标 myrecord books%rowtype; ----%rowtype表示行数据类型,myrecord存储books中的一行数据 begin open mycur; fetch mycur into myrecord; ----存入一行数据至myrecord while mycur%found loop ----%found布尔型,如果有行返回,则为true dbms_output.put_line(myrecord.books_id||','||myrecord.books_name); ---输出信息 fetch mycur into myrecord; ----存入下一行 end loop; close mycur;---关闭游标 end; / 说明: 使用游标逐行访问查询books表获得的结果集,输出每条记录中的bookid与bookname。从该例子可以看出,游标包含两方面的内容: 游标结果集:执行其中的Select语句所得到的结果集。 游标位置:一个指向游标结果集内的某一条记录的指针。 利用游标可以单独操纵结果集中的每一行。游标在定义以后存在两种状态:关闭和打开。当游标关闭时,其查询结果集不存在;只有当游标打开时,才能按行读取或修改结果集中的数据。一般使用完后不写close mycur也不会出现编译错误。 3. 游标的优点 允许程序对由查询语句select返回的行集合中的每一行执行相同或不同的操作,而不是对整个行集合执行同一个操作; 它还提供对基于游标位置而对表中数据进行删除或更新的能力; 游标作为面向集合的数据库管理系统和面向行的程序设计两者联系起来,使两个数据处理方式能够进行沟通。 上面章节,我们对游标的内容有了些详细的了解。但在使用游标时,往往会出现些问题。下面就打开的游标太多时,出现的一些问题作介绍。 4. 常见报错 如:在Oracle数据库中,会报如下信息: Caused by: ORA-01000: 超出打开游标的最大数 Oracle系统中,以参数open_cursors来限制打开的游标数,当打开游标超过这个数的时候就会报这个错,提示超出打开游标的最大数。游标个数理论上没有上限,也不是越大越好。 有这样一个测试显示:当这个open_cursor数值大了一定程度之后,会使得内存缩水,缩水的表现就是连接数减少。 如上结论可具体测试,其测试结果如下: 分别设置为以下值,测试数据库的连接,在同样的内存配置下,与用户可以连接的数(独占模式)有很大的区别。 open_cursors=6000000000 -------------连接数45 open_cursors=300 ---------------------连接数超过500. 由以上测试可知,当open_cursors扩大2000万倍之后连接数变为原来的十分之一,因此open_cursors的大小对连接数的影响不大,只要不要在千万级上增加,一般的几千几万跟几十,对连接数的影响甚微。 4.1 解决方案 按照游标的正规写法,打开游标使用完之后,就需关闭游标。 应避免游标打开过大,其可通过修改open_cursors大小,使其尽可能大。 4.2 检查open_cursors数值及修改方法 SQL>show parameter open_cursors; ---显示参数值 SQL>alter system set open_cursors = 1000; ---修改参数值为1000 SQL>commit;----提交 修改成功。

阅读全文(1551) | 回复(0) | 编辑 | 精华

 



发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)

 
 



The Neurotic Fishbowl

.: 公告

本博客提供详细的java报表软件的制作过程,发布java报表软件的版本更新信息,并适时对国内主流报表软件进行功能比较。


Bloginess

«November 2019»
12
3456789
10111213141516
17181920212223
24252627282930

.: 我的分类(专题)

首页(357)
Java报表软件—制作笔记(54)
Java报表软件—功能比较(43)
Java报表软件—使用心得(21)
Java报表软件—行业动态(54)
Java报表软件—新闻资讯(48)
Java报表软件—技术知识(49)
Java报表软件—问题解析(2)


In the Bowl

.: 最新日志

如何对报表的参数控件赋值
java报表工具FineReport常见
报表怎么做 FineReport连接池原
报表怎么做FineReport数据连接之
报表模板之报表设计
报表模板之报表设计


.: 最新回复

回复:报表参数
好好学习,
好好学习,天天向上。买双 air jor
回复:理解FineReport缓存系列2
回复:理解FineReport缓存系列2


The Fishkeeper
blog名称:Java报表软件
日志总数:357
评论数量:69
留言数量:0
访问次数:1092755
建立时间:2006年4月16日



Text Me

.: 留言板

签写新留言

需要你的帮助


Other Fish in the Sea

.: 链接

报表开发工具  html5图表java报表开发工具




站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.031 second(s), page refreshed 144327187 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号