博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
向SDE图层中添加大量数据时,出现ORA-00604以及ORA-01000的解决办法
阅读量:5999 次
发布时间:2019-06-20

本文共 896 字,大约阅读时间需要 2 分钟。

转自原文

写了一个小程序,从一个列表中读取坐标串,每个坐标串生成一个IPolygon,然后将这些Polygon添加到一个SDE图层中,

向SDE中添加要素的初始代码类似下面:

IWorkspaceEdit workspaceEdit = (IWorkspaceEdit)workspace;  workspaceEdit.StartEditing(true);  workspaceEdit.StartEditOperation();  for(int i=0;i

要素较少时可以正确地写入SDE图层,但大概超过300个左右,之后就会报这个错误:“ORA-00604: 递归 SQL 级别 1 出现错误,ORA-01000: 超出打开游标的最大数”,环境是ArcSDE9.3 + Oralce9i(之后还在ArcSDE9.3 + Oracle10g的环境里做了,结果基本相同,但将目标图层换为FileGDB图层后,没有出现该问题,说明应该是的相关设置的原因)。

联系ESRI技术支持,说可能是游标没有释放的问题,而且谈到在向FeatureClass中添加大量数据时,使用IFeatureCursor效率会比较高,而且可以通过将IFeatureCursor释放的方法来避免出现这个问题,代码修改为:

IWorkspaceEdit workspaceEdit = (IWorkspaceEdit)workspace;  workspaceEdit.StartEditing(true);  workspaceEdit.StartEditOperation();  IFeatureBuffer featureBuffer = fc.CreateFeatureBuffer();        //fc是图层对应的IFeatureClass  IFeatureCursor featureCursor = fc.Insert(true);  for(int i=0;i

修改后,问题依旧,再咨询ESRI技术支持后,可能是相关资源没有自动回收的原因,在代码最后加上GC.Collect();问题解决。

 

转载地址:http://cwzmx.baihongyu.com/

你可能感兴趣的文章
phpMyAdmim和Yii 连接Mysql报错。
查看>>
shell语法简单介绍
查看>>
Java程序员面试失败的5大原因
查看>>
Promise实现
查看>>
报表性能优化
查看>>
js设计模式--迭代器模式
查看>>
Python 学习笔记之——用 sklearn 对数据进行预处理
查看>>
阿里云ECS连接数据库教程方法
查看>>
react
查看>>
PostgreSQL 10.1 手册_部分 IV. 客户端接口_第 33 章 libpq - C 库_33.21. 例子程序
查看>>
iOS 性能优化
查看>>
Spread for Windows Forms高级主题(7)---自定义打印的外观
查看>>
【循序渐进学Python】5.Python常用流程控制及其他语句
查看>>
[LeetCode] Intersection of Two Arrays II 两个数组相交之二
查看>>
winpcap 发送数据包
查看>>
cisco 出现 %Error opening tftp://255.255.255.255 错误解决办法
查看>>
VIM编辑器
查看>>
IE主页被篡改 地址框变灰
查看>>
linux上架设l2tp+ipsec ***服务器
查看>>
Facebook和用户界面会如何扭曲你说的话
查看>>