1.运行ArcObjects代码报错:
IFeatureCursor pCursor = null;

            try
{
pCursor = m_pCatchLayer.m_pFeatureClass.Search(m_pSpatialFilter, false);
}
catch (Exception ex)
{ throw;
}

错误内容:

{"Underlying DBMS error [ORA-00604: 递归 SQL 级别 1 出现错误\nORA-01000: 超出打开游标的最大数\nORA-00604: 递归 SQL 级别 1 出现错误\nORA-01000: 超出打开游标的最大数\nORA-01000: 超出打开游标的最大数\n::SELECT  OBJECTID,  YSDM,  FLDM,  CDM,  MC,  SZ,  JB,  THXZ,  RL,  CJFS,  MAP,  JLSJ,  SCSJ,  MAPOBJECTID,  MAPOBJECTTIME,  1 SHAPE, ELEMID,  CLASID,  VERSION,  FDATE,  TDATE,  ENTILYRCOL,  ENTIIDCOL,  E_A21_MZSX_J_3204.SHAPE.area,  E_A21_MZSX_J_3204.SHAPE.len,  E_A21_MZSX_J_3204.SHAPE.points,E_A21_MZSX_J_3204.SHAPE.numpts,E_A21_MZSX_J_3204.SHAPE.entity,E_A21_MZSX_J_3204.SHAPE.minx,E_A21_MZSX_J_3204.SHAPE.miny,E_A21_MZSX_J_3204.SHAPE.maxx,E_A21_MZSX_J_3204.SHAPE.maxy,E_A21_MZSX_J_3204.rowid    FROM  FDBTX.E_A21_MZSX_J_3204 E_A21_MZSX_J_3204 WHERE SDE.ST_EnvIntersects(E_A21_MZSX_J_3204.SHAPE,:1,:2,:3,:4) = 1 ] [FDBTX.E_A21_MZSX_J_3204]"}

 

 

2.解释:

ArcSDE与ORACLE游标数

在空间数据库优化中,需要首先考虑ORACLE的性能优化,其中,OPEN_CURSORS参数是个比较重要的指标,会影响到系统的查询速度。

Oracle 初始化参数 OPEN_CURSORS 指定在任何时刻会话可同时打开的游标数。默认值是 300。如果会话尝试打开新游标,但此时已达到可打开游标数的最大值,那么将返回 Oracle 错误 -1000。ArcSDE 保留那些打开的、频繁执行的游标以提高性能。如果 Oracle OPEN_CURSORS 参数值设置得不够大,则将遇到上面提到的错误。Oracle 文档指出,给该参数设置非常大值不会产生不利影响。因此,可以设置非常大的值,例如,设置为 2000;从实用的角度来看,这样做即可有效地消除对打开游标数的限制,但同时又能提供一种保护措施,防止流氓进程尝试消耗过量的游标资源。相反,如果要计算会话可能打开的游标数,那么根据组织的数据模型,可将下面的公式作为指导:

各种 ArcSDE 数据管理游标 (20) +

各种匿名 PL/SQL 块 (20) +

空间查询 - 可能每个图层 6 个 +

日志文件查询 (11) +

编辑多版本化表时使用的其他查询 - 每个多版本化表或图层 12 个

如果文件中有 10 个图层被编辑时,ArcMap 应用程序可能打开 231 个游标 (20 + 20 + 60 + 11 + 120 = 231)。如果发现游标经常不够用,则可以 50 或 100 为增量增大 OPEN_CURSORS 参数值。

但需要注意的是Oracle 10g 预配置为当实例的已打开游标数超出 1200 时,生成服务器警报。由于 1200 个打开的游标对于地理数据库来说很常见,最好增大该警报的阈值以消除警报队列中出现无关的警告。

但设置非常大的游标数,需要更多的系统内存,因此要在实际情况下综合考虑。

 

3.查询游标数目语句:
show parameter open_cursors;

 

4.设置游标数目上限:
alter system set open_cursors=4000;

 

5.链接数据库方法:以sys身份登录PL/SQL,File->New->Command Window

 

6.查询正在使用的游标的数目sql语句
select count(*) from  v$open_cursor

 

 

select USER_NAME, count(*) from  v$open_cursor GROUP BY USER_NAME;

nORA-01000: 超出打开游标的最大数(SDE连接)的更多相关文章

  1. ORA-01000:超出打开游标的最大数(C#)

    在做一个windows服务,通过查询文本不断的插入数据的功能.测试一直没有问题,到实际环境中跑起来后程序退出,查看日志发现报的这个错误 ORA-01000:超出打开游标的最大数 经过上网查询发现是由于 ...

  2. oracle超出打开游标的最大数的原因和解决方案

    oracle超出打开游标的最大数的原因和解决方案 分类: Oracle相关2012-06-05 10:36 6362人阅读 评论(0) 收藏 举报 oracle数据库sqljavasessionsys ...

  3. Java_oracle超出打开游标的最大数的原因和解决方案

    第一步:核查Oracle数据库 的游标的最大数 处理超出打开游标的最大数异常(ORA-01000: maximum open cursors exceeded) ORA-01000_maximum_o ...

  4. [JDBC]ORA-01000: 超出打开游标的最大数(ORA-01000: maximum open cursors exceeded)

    问题产生的原因: Java代码在执行conn.createStatement()和conn.prepareStatement()的时候,相当于在数据库中打开了一个cursor.由于oracle对打开的 ...

  5. java.sql.SQLException: ORA-01000: 超出打开游标的最大数

    实际上,这个错误的原因,主要还是代码问题引起的.  ora-01000: maximum open cursors exceeded.  表示已经达到一个进程打开的最大游标数.  这样的错误很容易出现 ...

  6. ORA-00604: 递归 SQL 级别 1 出现错误 ORA-01000: 超出打开游标的最大数

    有程序没关闭游标, --打开了哪些游标 select * from v$open_cursor 在open cursor之后一定要注意要close cursor(在store procedure里更应 ...

  7. oracle异常处理——ORA-01000:超出打开游标最大数

    oracle异常处理--ORA-01000:超出打开游标最大数https://www.cnblogs.com/zhaosj/p/4309352.htmlhttps://blog.csdn.net/u0 ...

  8. 21. orcle导出sql脚本时,提示“超出打开游标最大数”

    1.解决办法:修改下打开游标最大数即可 SQL> show parameter open_cursors;NAME                                  TYPE   ...

  9. oracle 存储过程循环打开游标数据处理

    2017-07-24 14:12:42 SQL内容: 1.一次性检索 100000 条数据. 2. 1000 条提交一次. 3.超过 100000 万条,重新打开游标,重新检索. pl/sql内容如下 ...

随机推荐

  1. 理解Javascript__undefined和null

    在 ECMAScript 的原始类型中,是有Undefined 和 Null 类型的. 这两种类型都分别对应了属于自己的唯一专用值,即undefined 和 null. alert(undefined ...

  2. Input的readonly 属性与disabled属性

    readonly 不可编辑,可以获得焦点,背景颜色默认灰色,值的字体颜色默认为灰色,值可以在请求中传递 disabled 不可编辑,不可以获得焦点,背景颜色默认灰色,值的字体颜色默认为灰色,值不可以在 ...

  3. Python:列表

    #!/usr/bin/python3 #列表 是可变的,可修改的 listDemo = ["one","two","three"," ...

  4. 关于java中for和foreach循环

    for循环中的循环条件中的变量只求一次值!具体看最后的图片 foreach语句是java5新增,在遍历数组.集合的时候,foreach拥有不错的性能. foreach是for语句的简化,但是forea ...

  5. 【C语言】测试系统各数据类型大小代码

    测试各系统不同数据类型大小代码 一.相关基础知识 不同环境下各数据类型大小可能不相等,(某些环境下,类型带下可以选择)故测了就知道! 二.具体内容 三.分析总结 四.实例测试 #include< ...

  6. WCF X.b 操作引用了已经从 Y.b 操作导出的消息元素 [http://tempuri.org/:b]。可以通过更改方法名称或使用 OperationContractAttribute 的 Name 属性更改其中一个操作的名称...

    详细错误如下: 很可能由 IncludeExceptionDetailInFaults=true 创建的 ExceptionDetail,其值为: System.InvalidOperationExc ...

  7. nodejs服务

    http://www.csser.com/board/4f55035305ee2e572400005e http://blog.fens.me/nodejs-server-forever/ http: ...

  8. WebSocket能干啥

    ------这东西到底有什么用途,仔细看了说明,还是不明所以.楼上几位能不能介绍一下实际使用的场景?? 1.可以实现 服务器端(delphi&lazarus@win)<->手机端  ...

  9. 修改窗口属性(全部都是SetWindowLong设置)

    说明: 以下函数对于POPUP窗口有效,对于子窗口好像不行. //最小化按钮有效 ::SetWindowLong(m_hWnd,GWL_STYLE,GetWindowLong(m_hWnd,GWL_S ...

  10. 【Xamain 跨平台机制原理剖析】

    原文:[Xamain 跨平台机制原理剖析] [看了请推荐,推荐满100后,将发补丁地址] Xamarin项目从喊口号到现在,好几个年头了,在内地没有火起来,原因无非有三,1.授权费贵 2.贵 3.原生 ...