我有两个数据库;一个在本地服务器;
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调试存储过程。
我可以在这里分享存储的产品,但它真的很长。
我该如何解决这个问题?
答案 0 :(得分:3)
由于执行存储过程的权限不足,您收到此错误。尝试在用户级别授予权限(用户级别表示您通过哪些凭据连接到数据库。请检入配置文件)。
我遇到了同样的问题。我在Oracle DB中创建了一个存储过程。我执行了,它编译成功。但是,它在运行时遇到问题。在用户级别为存储过程授予权限后,问题就完全解决了。
运行时异常ORA-06550:第1行第7列:
PLS-00201:标识符' Package.StoredProcedure'必须申报 ORA-06550:第1行第7列:PL / SQL:忽略语句
答案 1 :(得分:1)
检查连接字符串并确保从C#应用程序调用正确的数据库和/或模式名称。
如果所有其他存储过程都正常工作,并且在oracle sql developer上调试时这个特定的存储过程不能正常工作;它必须是连接问题。如果它在DBA帐户下调试和处理这两个数据库,那么也应该没有权限问题。
我认为如果你专注于连接,就像mmmmmpie在评论中所说,你应该找到问题。
答案 2 :(得分:0)
在数据库中更改存储过程时出现此错误。
用于更新以以下内容开头的脚本:
PROCEDURE myProcedure
通过添加以下行:
CREATE OR REPLACE myProcedure
解决了此错误。就我而言,也许最初没有显示此错误,因为它是一个新的存储过程。
答案 3 :(得分:-1)
当我们在机器上安装新的Java代码并调用Oracle程序包时,出现了此错误, 出现
之类的错误ORA 06550‘MX_CREAT_CUST_PKG'标识符必须声明,Java 春季apicaton正在使用电子钱包来触发用户ID和 密码
, 由于我们具有开发人员访问权限,我们甚至不知道它触发了哪个用户ID,涉及的DBA检查了给定ID,访问权限,包的编译以及所有未发现问题的角色。
后来通过信封团队,我们知道用不同的用户ID替换了钱包,该用户ID无法访问包装并更正了钱包文件中的用户ID
大多数情况下,问题是用户ID无权访问,如果从Java或其他应用程序触发,请检查连接字符串, 获得对用户ID的适当访问权限