"ORA 您所在的位置:网站首页 oracle字符串缓冲区太小怎么解决06502 "ORA

"ORA

2024-07-11 22:18| 来源: 网络整理| 查看: 265

今天在写一个简单的oracle存储过程时,突然报以下错误:

“/”应用程序中的服务器错误。--------------------------------------------------------------------------------

ORA-06502: PL/SQL: 数字或值错误 :  字符串缓冲区太小ORA-06512: 在"FRAME_DBA.PKG_FRAMETABLE900_MANAGE", line 14ORA-06512: 在line 1 说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: Oracle.DataAccess.Client.OracleException: ORA-06502: PL/SQL: 数字或值错误 :  字符串缓冲区太小ORA-06512: 在"FRAME_DBA.PKG_FRAMETABLE900_MANAGE", line 14ORA-06512: 在line 1

源错误:

行 223:行 224:                //Execute the command行 225:                int val = cmd.ExecuteNonQuery();行 226:                cmd.Parameters.Clear();行 227:                return val; 

源文件: H:\NewMis\Core\OracleHelper.cs    行: 225

堆栈跟踪:

[OracleException: ORA-06502: PL/SQL: 数字或值错误 :  字符串缓冲区太小ORA-06512: 在"FRAME_DBA.PKG_FRAMETABLE900_MANAGE", line 14ORA-06512: 在line 1]   Oracle.DataAccess.Client.OracleException.HandleErrorHelper(Int32 errCode, OracleConnection conn, IntPtr opsErrCtx, OpoSqlValCtx* pOpoSqlValCtx, Object src, String procedure) +303   Oracle.DataAccess.Client.OracleException.HandleError(Int32 errCode, OracleConnection conn, String procedure, IntPtr opsErrCtx, OpoSqlValCtx* pOpoSqlValCtx, Object src) +45   Oracle.DataAccess.Client.OracleCommand.ExecuteNonQuery() +2492   PFPMIS.Core.OracleHelper.ExecuteNonQuery(String connectionString, CommandType cmdType, String cmdText, OracleParameter[] commandParameters) in H:\NewMis\Core\OracleHelper.cs:225   PFPMIS.Account.Data.CommonData.GetUnitNameByCode(String unitCode) in H:\NewMis\AccountsData\CommonData.cs:45   PFPMIS.Account.Business.CommonBuss.BuildUnitTree(String unitCode, TreeView myTv) in H:\NewMis\AccountsBusiness\CommonBuss.cs:95   PFPMIS.Web.Index.AutoTree.Page_Load(Object sender, EventArgs e) in H:\NewMis\Index\AutoTree.aspx.cs:31   System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +15   System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +34   System.Web.UI.Control.OnLoad(EventArgs e) +99   System.Web.UI.Control.LoadRecursive() +47   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1061

 

--------------------------------------------------------------------------------版本信息: Microsoft .NET Framework 版本:2.0.50727.42; ASP.NET 版本:2.0.50727.210 

赶紧调试跟踪,一直跟踪到存储过程都没有任何问题,存储过程参数顺序和值都正常,用pl/sql调试存储过程输出也没有任何问题。

到网上找了些解决方法,没有任何效果,仔细看报错信息,突然想到会不会是oracle没有为我的变量分配存储空间,因为我的输入输出变量都没有设置大小,马上加上试了一下,OK。

总结一下结论:在.net平台下,用ODP.net调用oracle存储过程时最好在程序中设置存储过程参数大小,否则可能会报以上错误哦,希望给碰到此问题的朋友一些帮助,虽然这个错误的原因可能是其它方面的.

21中医助手



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有