`

帆软报表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;----提交

修改成功。

 

 

分享到:
评论

相关推荐

    帆软报表FineReport中数据连接之Websphere配置JNDI连接

    在帆软报表FineReport中,若要实现与Websphere应用服务器的JNDI连接,需要进行一系列配置,以确保报表能够利用JNDI获取数据源,并最终在WEB环境中通过浏览器访问报表。 首先,需要了解JNDI(Java Naming and ...

    帆软报表ppt入门教程

    帆软报表(FineReport)是一款企业级的报表工具,它支持多种数据源,包括数据库、Excel、文本文件等,可以处理大量数据,提供丰富的图表类型和样式,满足用户在数据分析、报表设计和展示上的需求。此外,帆软报表还...

    帆软报表软件FineReport帮助文档

    FineReport报表工具提供了易用且高效率的报表设计方案,采用主流的数据双向扩展,真正无编码形式设计报表模板;拥有强大的报表展示功能,并且提供完善的报表权限管理,报表调度管理;具有完备的报表填报功能,支持...

    帆软报表插件,显示sql数据集的查询时间。

    在IT行业中,帆软报表(FineReport)是一款广泛使用的报表设计和数据分析工具,它提供了丰富的功能,帮助企业用户高效地处理和展示数据。本话题聚焦于帆软报表的一个特定功能:显示SQL数据集的查询时间。这个特性...

    帆软报表导出各种格式(excel/word/pdf等)

    帆软报表是一款强大的中国本土化报表工具,专为解决企业数据报表设计与分析问题而生。在本主题中,我们将探讨如何使用帆软报表导出各种格式,包括Excel、Word和PDF等,以便满足不同场景下的需求。 首先,我们要知道...

    web,spring boot 集成帆软,finereport

    在本文中,我们将深入探讨如何将Web应用与Spring Boot框架集成帆软报表工具Finereport。Spring Boot以其简洁、高效和自动配置的特性,成为Java领域开发微服务和Web应用的首选框架。而Finereport作为一款强大的报表...

    帆软Finereport制作多源分片报表模板 + SQL脚本

    帆软Finereport是一款强大的报表工具,尤其擅长处理复杂的中国式报表。在这个特定的案例中,我们聚焦于“多源分片报表”的制作,这是一种能够整合来自多个数据源的数据,并进行灵活布局的报表类型。 首先,让我们...

    如何修改FineReport报表平台中数据决策系统登陆地址

    以上两种方法都可以有效解决简化FineReport报表平台中数据决策系统登录地址的问题。设置跳转的方法简单快捷,适合于快速部署;而IFrame嵌入的方式则更注重用户体验,适用于对美观性和易用性有一定要求的场景。根据...

    帆软报表Oracle存储过程解决storeParameter1参数试用插件

    总结起来,"帆软报表Oracle存储过程解决storeParameter1参数试用插件"主要是针对在调用无参数Oracle存储过程时出现的异常问题提供的一种解决方案。通过安装并配置这个插件,用户可以顺利地在帆软报表中调用不包含...

    帆软报表使用jar包

    如果遇到问题,查看错误日志,并查阅帆软报表的官方文档或在线社区寻求解决方案。 需要注意的是,为了保证项目稳定运行,引入任何库之前都应该进行充分的测试。此外,及时关注软件更新,保持jar包版本的最新,可以...

    Finereport数据集参数实现动态列报表模板 + 函数JS代码

    总的来说,这个资源包提供了一个完整的解决方案,包括了FineReport的报表模板、SQL动态生成逻辑以及JavaScript交互增强。对于希望提升报表功能和用户体验的开发者来说,这是一个非常有价值的参考实例。通过学习和...

    报表工具FineReport中如何把报表放到网页中显示

    ### 报表工具FineReport中如何把报表放到网页中显示 ...这种方式的优点在于可以灵活地控制报表在页面上的位置,并且可以通过JavaScript与报表进行交互,获取报表数据或调用报表内部的方法。 示例代码如下: ```html ...

    FineReport如何连接和使用MongoDB数据库

    随着NoSQL数据库越来越流行,MongoDB数据库作为NoSQL数据库中的领头羊,使用也越来越广泛。为此,FineReport V8.0版本提供了数据连接和数据集接口,可以通过开发一款可以连接和使用的MongoDB数据库的插件。

    FineReport功能说明

    FineReport功能说明:、 多 sheet 报表设计:支持在设计器中创建多 Sheet 报表,导入导出多Sheet 的 Excel文件。 2、 多报表运行环境:能在多个报表运行环境中切换设计报表。 3、 多数据源关联:同一张报表可以从...

    帆软FineReport(V10.0)产品介绍

    介绍报表的相关知识和基本概念,以及报表工具FineReport初级报表的制作,分组报表、自由报表、多源报表、交叉报表、主子报表原理及制作,图表、参数查询模块,数据钻取的介绍,填报、多sheet填报、数据上报等填报...

    帆软fineReport报表使用文档

    使用帆软提供的报表,可以查看此文档,了解报表中使用的语法规则和方法释义,并学会制作报表。

    FineReport报表工具功能清单

    以上是对FineReport报表工具主要功能的概述,它不仅能满足日常的数据展示需求,还为企业提供了一套完整的数据管理和分析解决方案。通过深入学习和应用,FineReport能够帮助企业提升数据驱动决策的能力,优化业务流程...

    Web报表FineReport页面如何传递中文参数

    在使用报表开发工具FineReport设计web报表时,经常需要嵌入iframe到页面中,并给iframe的src属性指定报表地址的同时传递参数值。在参数值、参数名称以及报表名称中,如果包含中文字符或特殊字符,直接传递可能会导致...

    ie6打开帆软报表速度慢解决办法

    解决IE6由于机制问题打开帆软报表很慢,一个注册文件,在客户端运行即可

Global site tag (gtag.js) - Google Analytics