标识符必须声明为 ORA-06550 和 PLS-00201
本文关键字:ORA-06550 PLS-00201 声明 标识符 | 更新日期: 2023-09-27 18:33:40
我有两个数据库;一个在本地服务器中;
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 应用时,收到以下错误,告诉我必须声明存储过程:
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 开发人员并在 VM 数据库上调试过程,并得到所需的值。仅当我尝试获取该特定存储过程时,它才会在 .Net 应用程序中发生。其他所有存储过程(即所有其他存储过程(都工作正常。
我做了什么来解决这个问题;
- 更改了过程的名称(不起作用(
- 检查架构以确保所有表和存储过程都属于正确的用户(它们属于正确的用户(
- 我向用户授予了访问权限,即使存储过程是由该用户创建的。
- 我删除并重新创建了存储过程
- 我使用了
Myuser.storedprocedure
名称表示法,它不起作用
我不明白的是,完全相同的代码正在本地网络上工作,而且我可以通过Oracle SQL Developer调试存储过程。
我可以在这里分享存储的产品,但它真的非常非常长。
我该如何解决这个问题?
由于执行存储过程的权限不足,您会收到此错误。尝试在用户级别授予权限(用户级别表示通过哪些凭据连接到数据库。签入您的配置文件(。
我遇到了同样的问题。我在 Oracle DB 中创建了一个存储过程。我执行了,它编译成功。但是,它在运行时出现问题。在用户级别授予存储过程的权限后,问题完全解决了。
运行时异常 ORA-06550:第 1 行,第 7 列:
PLS-00201:必须声明
标识符"包.存储过程" ORA-06550:第 1 行,第 7 列:PL/SQL:忽略语句
检查连接字符串,并确保从 C# 应用程序调用正确的数据库和/或架构名称。
如果所有其他存储过程都工作正常,并且在 oracle sql developer 上调试时此特定存储过程无法正常工作;则一定是连接问题。如果它在 DBA 帐户下调试并处理两个数据库,则也应该不会出现权限问题。
我认为,如果您像mmmmmpie在他的评论中所说的那样专注于连接,您应该找到问题所在。
当数据库中的存储过程被更改时,我收到此错误。
用于更新更改的脚本以以下内容开头:
PROCEDURE myProcedure
通过添加以下行:
CREATE OR REPLACE myProcedure
解决了此错误。就我而言,也许此错误一开始没有显示,因为它是一个新的存储过程。
使用Oracle和 Asp.net MVC时遇到了这个问题。我习惯了商店程序,让我给你一个简要的介绍我们在甲骨文中有两个数据库例如。报告数据库, 生产数据库我在报告数据库上创建了存储过程,并且此外,我们在我的 Web 应用程序中有 2 个连接,例如:连接 1、连接 2错误地我被称为连接2生产数据库,但查询是在connection1数据库上准备,以便某些表无法进入存储过程,这就是我收到此错误的原因