oracle 空包 <包名称> 定义(无公共成员)
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/32580687/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Empty package <package name> definition (no public members)
提问by Mladen Or?oli?
I'm facing an issue when trying to run or debug a package where Oracle SQL Developer doesn't display public members (procedures) that don't have input parameters.
在尝试运行或调试 Oracle SQL Developer 不显示没有输入参数的公共成员(过程)的包时,我遇到了一个问题。
There is a couple of procedures, some overloads, but Oracle SQL Developer doesnt display no invoke-able members.
有几个过程和一些重载,但 Oracle SQL Developer 没有显示可调用的成员。
I've tried with following versions of Oracle SQL Developer
我尝试过以下版本的 Oracle SQL Developer
- 4.1.1.19link to article saying this version solves the issue, but it didn't
- 4.0.3.16 - same behavior
- 4.0.0.13 - same behavior
- 3.2.20.09 - this version actually displayed invokable members, but debugger doesnt work.
- 4.1.1.19文章链接说这个版本解决了问题,但没有
- 4.0.3.16 - 相同的行为
- 4.0.0.13 - 相同的行为
- 3.2.20.09 - 此版本实际上显示了可调用成员,但调试器不起作用。
This is the Oracle version :
这是 Oracle 版本:
select * from v$version;
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 IBM/AIX RISC System/6000: Version 11.2.0.4.0 - Production
NLSRTL Version 11.2.0.4.0 - Production
Has anyone successfully resolved similar situation and how? (Upgrading database is not an option atm)
有没有人成功解决过类似的情况以及如何解决?(升级数据库不是 atm 选项)
回答by Diego
A bit late, but i could help. There is a SqlDeveloper bug. What I have to do is to "Save" it before Compile it...
有点晚了,但我可以帮忙。有一个 SqlDeveloper 错误。我要做的是在编译之前“保存”它......
Hope it helps
希望能帮助到你
回答by Alex Ma
I found 2 possible cause that may cause the no public member problem
我发现了 2 个可能导致无公共成员问题的原因
1) SQL Developer hit some kind of bugs itself. This can be resolved by completely close and restarting the SQL developer
1) SQL Developer 本身就遇到了某种错误。这可以通过完全关闭并重新启动 SQL 开发人员来解决
2) Some keywords used in your codes (e.g. field name in SQL statements) that works fine in compiled execution , but would ruin the display of function list.
2)你的代码中使用的一些关键字(例如SQL语句中的字段名)在编译执行时可以正常工作,但会破坏函数列表的显示。
I resolved my problem by applying double quote to the entire packages where a field named “CASE” is used.
我通过对使用名为“CASE”的字段的整个包应用双引号解决了我的问题。
i.e. SELECT table1.case FROM table1
即 SELECT table1.case FROM table1
change to
改成
SELECT table1."CASE" FROM table1
SELECT table1."CASE" FROM table1
Alex
亚历克斯
回答by PS_
Definitely late , but came across the same issue & thought of posting what helped me .
肯定迟到了,但遇到了同样的问题并想到发布对我有帮助的内容。
The proc was contained in a package that belong to another user & the grants were not provided for the user which was calling the proc .
proc 包含在属于另一个用户的包中,并且没有为调用 proc 的用户提供授权。
Works when the grants are done.
拨款完成后工作。
回答by Srijesh Variyar
I would recommend to save the stored procedure and then compile. In some cases, after saving the procedure, the table will automatically compile. But, you have to save each and every time you make changes.
我建议保存存储过程然后编译。在某些情况下,保存程序后,表格会自动编译。但是,每次进行更改时都必须保存。
I hope this helps you out.
我希望这能够帮到你。