- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
GeneXusORA-01002 提取违反顺序的错误解决
Genexus + Oracle应用中出现提取违反顺序的错误解决方法错误现象1)在Gx9.0 Win 应用中2)在Gx Ev Web应用中“/GXStudy.NetEnvironment”应用程序中的服务器错误。 ORA-01002: 提取违反顺序说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.OracleClient.OracleException: ORA-01002: 提取违反顺序源错误: 执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。 堆栈跟踪: [OracleException (0: ORA-01002: 提取违反顺序] System.Data.OracleClient.OracleConnection.CheckError(OciErrorHandle errorHandle, Int32 rc) +190 System.Data.OracleClient.OracleDataReader.ReadInternal() +867 System.Data.OracleClient.OracleDataReader.Read() +66 GeneXus.Data.GxDataReader.Read() +56[GxADODataException: ORA-01002: 提取违反顺序] GeneXus.Data.GxDataReader.Read() +156 GeneXus.Data.NTier.ADO.ForEachCursor.readNext() +28 GeneXus.Data.NTier.DataStoreProvider.readNext(Int32 cursor) +33 GeneXus.Programs.updpeo.executePrivate() +318 GeneXus.Programs.test.E121J2() +44 GeneXus.Programs.test.EVT1J2() +1343 GeneXus.Programs.test.DispatchEvents() +5 GeneXus.Programs.appmasterpage.EVT012() +2317 GeneXus.Programs.appmasterpage.webExecute() +130 GeneXus.Programs.test.webExecute() +259 GeneXus.Http.GXHttpHandler.ProcessRequest(HttpContext httpContext) +175[Exception: GXApplication exception] GeneXus.Http.GXHttpHandler.ProcessRequest(HttpContext httpContext) +264 System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +181 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean completedSynchronously) +75分析原因Web方式和win方式都会存在这种情况。为什么会出现这样情况呢?原因:(1):在我们执行proc1时用到for each 更新数据时,每循环1次(当记录非常多的时候才会发生)就提交数据(即在循环语句中放置commit了,不推荐在for each 语句中在更新字段时放置commit或rollback)。 如: TrnPeo: *PeoCod N(4) 流水号,主键 PeoNam V(20) 姓名 ProUpdPeo :(设置commit = NO)for each PeoCodPeoCod = PeoCodpeoNam = D + PeoCod.ToString()//更新字段了commit //在这里放了,很危险的哦endfor分析:为什么要放commit呢,原因在于我想更新1条记录就提交1次,这样写虽然没有错,但是执行就会出现上面的情况,与您想要的结果不一样了.当然推荐在for each 外放commit了.虽然放在for each 外面,这样的情况当然不能出现上述情况,但是如果是数据量很大的时候,将会等大量的数据处理后再最后提交的时间会很长,很浪费时间.所以如果我们的业务需要我们更新1条,提交1条,怎么办呢?
原创力文档


文档评论(0)