ORA06550: 第 1 行, 第 35 列: PLS00103: 出现符号 "PARKID"在需要下列之一时::= . ( @ % ;符号 ":=" 被替换为 "PARKID" 后继续。

今天写一个操作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”。
在此做一个检讨。以后写代码要再认真一些。以免再次出现这种情况。
原文地址:https://www.cnblogs.com/ilovexiao/p/1195483.html