繁体   English   中英

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

[英]How to add a stored procedure to Oracle database?

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

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

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

我已经从其他有效的SP复制了访问和权限配置,但实际上并没有任何改变。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM