我有两个数据库;一个在本地服务器中;
Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production PL/SQL Release 11.1.0.7.0 - Production "CORE 11.1.0.7.0 Production" TNS for 64-bit Windows: Version 11.1.0.7.0 - Production NLSRTL Version 11.1.0.7.0 - Production
另一个是VM:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production PL/SQL Release 11.2.0.4.0 - Production "CORE 11.2.0.4.0 Production" TNS for Linux: Version 11.2.0.4.0 - Production NLSRTL Version 11.2.0.4.0 - Production
这些服务器的其他所有内容都是相同的。我是两台服务器的DBA。所有表和存储过程都可以在两个数据库中正常工作,但是当Asp.net尝试连接到它时,一个存储过程无法正常工作。
当我运行连接到VM数据库的Asp.net应用程序时,出现以下错误,告诉我必须声明存储过程:
Message: Sys.WebForms.PageRequestManagerServerErrorException: ORA-06550: line 1, column 7:
PLS-00201: identifier 'GETINFO' must be declared
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
我打开SQL Developer并在VM数据库上调试该过程,然后得到所需的值。如果我尝试获取特定的存储过程,它只会在.Net应用程序中发生。其他所有存储过程,其他所有东西都可以正常工作。
我为解决此问题所做的工作;
更改了程序名称(勤工俭学)
检查了架构以确保所有表和存储过程都属于正确的用户(它们确实属于正确的用户)
即使该用户创建了存储过程,我仍授予该用户访问权限。
我删除并重新创建了存储过程
我用Myuser.storedprocedure
名字记号没用
我不了解的是,完全相同的代码在本地网络上运行,而且我可以通过Oracle SQL Developer调试存储过程。
我可以在这里共享存储的产品,但是它确实非常长。
我怎样才能解决这个问题?
由于执行存储过程的权限不足,您将收到此错误。尝试在用户级别授予权限(用户级别表示您通过哪种凭据连接到数据库。请检入配置文件)。
我有同样的问题。我在Oracle DB中创建了一个存储过程。我执行了,编译成功。但是,它在运行时出现问题。在用户级别授予存储过程的权限后,该问题已完全解决。
运行时异常ORA-06550:第1行,第7列:
PLS-00201:必须声明标识符“ Package.StoredProcedure”
ORA-06550:第1行,第7列:PL / SQL:语句被忽略