我有两个数据库;一个在本地服务器;
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
另一个是虚拟机:
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。所有的表和存储过程在这两个数据库中都工作正常,但是当www.example.com试图连接到一个存储过程时,它不工作Asp.net。
当我运行Asp.net连接到VM数据库的www.example.com应用程序时,出现以下错误,告诉我必须声明存储过程: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应用程序中出现这种情况。其他所有存储过程都运行正常。
我为解决问题所做的工作;
1.更改了程序名称(不起作用)
1.已检查架构以确保所有表和存储过程都属于正确的用户(它们确实属于正确的用户)
1.即使存储过程是由该用户创建,我也向该用户授予访问权限。
1.我删除并重新创建了存储过程
1.我使用了Myuser.storedprocedure
名称表示法,它不起作用
我不明白的是,完全相同的代码在本地网络上工作,而且我可以通过Oracle SQL Developer调试存储过程。
我可以在这里分享存储的产品,但它真的,真的很长。
我该如何解决这个问题?
4条答案
按热度按时间r7xajy2e1#
出现此错误是因为没有足够的权限执行存储过程。请尝试授予用户级别的权限(用户级别表示您连接到数据库所使用的凭据。请检查配置文件)。
我遇到了同样的问题。我在Oracle DB中创建了一个存储过程。我执行了它,它编译成功。但是,它在运行时遇到了问题。在为存储过程授予用户级别的权限后,问题完全解决了。
运行时异常错误ORA-06550:第1行,第7栏:
PLS-00201:必须声明标识符'Package.StoredProcedure'
ORA-06550:第1行,第7列:PL/SQL:忽略语句
watbbzwu2#
请检查连接字符串,确保从C#应用程序调用数据库和/或架构名称正确
在OracleSQLDeveloper上调试时,如果所有其他存储过程都运行正常,而这个特定的存储过程运行不正常;这一定是连接问题。2如果它在DBA帐户下调试和运行两个数据库,也应该没有权限问题。
我认为如果你像mmmmmpie在他的评论中说的那样关注联系,你应该找到问题所在。
kiz8lqtg3#
当数据库中的存储过程被更改时,我收到此错误。
用于更新更改的脚本以下列内容开头:
通过添加以下行:
解决了这个错误。在我的例子中,可能这个错误一开始没有显示,因为它是一个新的存储过程。
iszxjhcz4#
我在使用Oracle和www.example.com MVC时遇到了这个问题Asp.net。我使用的是存储过程。让我给予你一个简短的介绍,我们在Oracle中有两个数据库,例如Reportdatabase、Productiondatabase我在Reportdatabase上创建了存储过程,并且我们在Web应用程序中有两个连接,例如:connection1,connection2****我被错误地称为connection2 Productiondatabase,但查询是在connection1数据库上准备的,因此某些表无法进入存储过程,这就是我收到此错误的原因