我有两个数据库;一个在本地服务器;
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。所有表和存储过程在两个数据库中都工作正常,但是当 Asp.net 尝试连接到一个存储过程时,它不起作用。
当我运行连接到 VM 数据库的 Asp.net 应用程序时,出现以下错误,告诉我必须声明存储过程:
消息:Sys.WebForms.PageRequestManagerServerErrorException:ORA-06550:第 1 行,第 7 列:
PLS-00201: 必须声明标识符 'GETINFO'
ORA-06550:第 1 行,第 7 列:
PL/SQL:语句被忽略
我打开我的 SQL Developer 并调试 VM 数据库上的过程,我得到了所需的值。 如果我尝试获取特定的存储过程,它只会在 .Net 应用程序中发生。其他一切,作为所有其他存储过程,都运行良好。
我为解决该问题所做的工作;
- 更改了程序的名称(没有用)
- 检查架构以确保所有表和存储过程属于正确的用户(它们确实属于正确的用户)
- 我授予用户访问权限,即使该用户创建了存储过程。
- 我删除并重新创建了存储过程
- 我使用了
Myuser.storedprocedure
名称表示法,但它不起作用
我不明白的是完全相同的代码在本地网络上运行,而且我可以通过 Oracle SQL Developer 调试存储过程。
我可以在这里分享存储的产品,但它真的非常长。
我该如何解决这个问题?
最佳答案
您收到此错误是因为执行存储过程的权限不足。尝试在用户级别授予权限(用户级别意味着您连接到数据库的凭据。检查您的配置文件)。
我遇到了同样的问题。我在 Oracle DB 中创建了一个存储过程。我执行了,编译成功。但是,它在运行时出现问题。在为存储过程授予用户级别的权限后,问题就完全解决了。
Run-time Exception ORA-06550: line 1, column 7:
PLS-00201: identifier 'Package.StoredProcedure' must be declared
ORA-06550: line 1, column 7: PL/SQL: Statement ignored
关于c# - 标识符必须声明为 ORA-06550 和 PLS-00201,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27366851/