如何将存储过程添加到Oracle数据库?

时间:2013-04-08 15:09:36

标签: database oracle stored-procedures

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

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

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

我已经复制了其他可行的SP的访问和权限配置,但它并没有真正改变任何内容。

1 个答案:

答案 0 :(得分: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
相关问题