今天写一个操作Oracle存储过程的类的时候,突然发现这么一个错误。
“/”应用程序中的服务器错误。
ORA-06550: 第 1 行, 第 35 列:
PLS-00103: 出现符号 "PARKID"在需要下列之一时:
:= . ( @ % ;
符号 ":=" 被替换为 "PARKID" 后继续。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.Data.OracleClient.OracleException: ORA-06550: 第 1 行, 第 35 列:
PLS-00103: 出现符号 "PARKID"在需要下列之一时:
:= . ( @ % ;
符号 ":=" 被替换为 "PARKID" 后继续。
源错误:
行 472: results = database.ExecuteReader(dbCommand);
行 473: }
行 474: catch (Exception ex /*ex*/)
行 475: {
行 476: //PSB 2006-05-26: should we use EntLib ExceptionPolicy.HandleException?
|
源文件: E:\NewSite\srcTmp\D3Map.Data\Utility.cs 行: 474
堆栈跟踪:
[OracleException (0x80131938): ORA-06550: 第 1 行, 第 35 列:
PLS-00103: 出现符号 "PARKID"在需要下列之一时:
:= . ( @ % ;
符号 ":=" 被替换为 "PARKID" 后继续。
]
System.Data.OracleClient.OracleConnection.CheckError(OciErrorHandle errorHandle, Int32 rc) +205
System.Data.OracleClient.OracleCommand.Execute(OciStatementHandle statementHandle, CommandBehavior behavior, Boolean needRowid, OciRowidDescriptor& rowidDescriptor, ArrayList& resultParameterOrdinals) +1024
System.Data.OracleClient.OracleCommand.Execute(OciStatementHandle statementHandle, CommandBehavior behavior, ArrayList& resultParameterOrdinals) +25
System.Data.OracleClient.OracleCommand.ExecuteReader(CommandBehavior behavior) +138
System.Data.OracleClient.OracleCommand.ExecuteDbDataReader(CommandBehavior behavior) +4
System.Data.Common.DbCommand.ExecuteReader(CommandBehavior behavior) +7
Microsoft.Practices.EnterpriseLibrary.Data.Database.DoExecuteReader(DbCommand command, CommandBehavior cmdBehavior) +198
Microsoft.Practices.EnterpriseLibrary.Data.Database.ExecuteReader(DbCommand command) +111
Microsoft.Practices.EnterpriseLibrary.Data.Oracle.OracleDatabase.ExecuteReader(DbCommand command) +74
D3Map.Data.Utility.ExecuteReader(Database database, DbCommand dbCommand) in E:\NewSite\srcTmp\D3Map.Data\Utility.cs:474
D3Map.Data.SqlClient.SqlMapParkProviderBase.GetByParkId(TransactionManager transactionManager, Int32 parkId, Int32 start, Int32 pageLength, Int32& count) in E:\NewSite\srcTmp\D3Map.Data.SqlClient\SqlMapParkProviderBase.generated.cs:586
D3Map.Data.Bases.MapParkProviderBaseCore.GetByParkId(Int32 parkId) in E:\NewSite\srcTmp\D3Map.Data\Bases\MapParkProviderBase.generatedCore.cs:86
test.TestMapPark() in e:\NewSite\srcTmp\D3Map.Website\test.aspx.cs:126
test.Page_Load(Object sender, EventArgs e) in e:\NewSite\srcTmp\D3Map.Website\test.aspx.cs:19
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.42
在网上查了好久, 都没能查到原因,
最后做了一次彻底的检查,才发现我在存储过程名“GetByPARKID”之间多加了一个空格,写成了“GetBy PARKID”。
在此做一个检讨。以后写代码要再认真一些。以免再次出现这种情况。