【发布时间】:2013-03-30 17:53:35
【问题描述】:
通过 SQL Developer,我向 Oracle 数据库添加了一个新的存储过程。它不仅列在存储过程列表中(与所有其他 SP 一起),而且我可以在 SQL Developer 上轻松执行它。
问题是我似乎无法从外部应用程序执行它。数据库链接到它,我可以调用所有其他存储过程,但不能调用我刚刚创建的那个。我得到的错误信息是:
ORA-06550:第 1 行,第 7 列:PLS-00201:必须声明标识符“SETDATE” ORA-06550:第 1 行,第 7 列:PL/SQL:忽略语句
我从其他有效的 SP 复制了访问和权限配置,但它并没有真正改变任何东西。
【问题讨论】:
-
您的应用程序是否以程序所有者的身份进行连接?如果不是,它是否被引用为
user.procedure();其他的有效吗?听起来您可能拥有(也许是公开的)其他程序的同义词,但没有您的新程序……假设您已按照您的说明正确授予执行权限。 -
真的相关吗?当通过 SQL Developer 执行时,它就可以完成它的工作。
-
您需要授权才能从用户那里执行它。
-
@Rodrigo 无论您是以所有者身份还是其他用户身份登录,都会大不相同。请显示完整的创建过程声明,以及您提供的所有授权。另外,请提供您用于 SQL Developer 的帐户以及您用于外部应用程序的帐户。
标签: database oracle stored-procedures