0

通过 SQL Developer,我向Oracle 数据库添加了一个新的存储过程。它不仅列在存储过程列表中(与所有其他 SP 一起),而且我可以在 SQL Developer 上轻松执行它。

问题是我似乎无法从外部应用程序执行它。数据库链接到它,我可以调用所有其他存储过程,但不能调用我刚刚创建的那个。我得到的错误信息是:

ORA-06550:第 1 行,第 7 列:PLS-00201:必须声明标识符“SETDATE” ORA-06550:第 1 行,第 7 列:PL/SQL:语句被忽略

我已经从其他有效的 SP 复制了访问和权限配置,但它并没有真正改变任何东西。

4

1 回答 1

1

调试这类事情时的一件好事是:

SELECT owner, object_name, object_type
FROM   all_objects
WHERE  object_name IN( 'PROCEDURE_WHICH_WORKS', 'PROCEDURE_WHICH_DOESNT' )

如果 SQL*Developer 在错误的模式中创建它或者缺少同义词或类似的东西,这应该很明显。如果都一样,那么您需要查看可能缺少的 GRANT EXECUTE 权限。

您确定 SQL*Developer 和您的外部程序以完全相同的用户身份连接吗?只是为了确保你能

SELECT user FROM dual
于 2013-04-08T15:30:14.703 回答