【发布时间】:2016-09-07 16:45:47
【问题描述】:
我是一名前 Java 开发人员,使用 Oracle 的 SQL-Developer 创建 Oracle“包”。
Oracle 的网站表明可以创建一个 Oracle“包”,其中一些对象(变量、函数、过程)可以在包“范围之外”访问,而其他对象只能在包“内部”访问。
也就是说,我正在尝试做这样的事情(伪代码!),它有意但表面上类似于 Java。
所以,我在问,“如何在 Oracle PL SQL 包中实现类似于(java 的)PUBLIC 和 PRIVATE 的功能”? (“参见‘Oracle 关键字’足以为我指明正确的方向。)
提前致谢!
CREATE PACKAGE a
// header
**PUBLIC** NUMBER nVisibleOutside := 1;
**PRIVATE** NUMBER nNOTVisibleOutside := 14922016;
PUBLIC PROCEDURE pVisibleOutside ();
PUBLIC FUNCTION fNOTVisibleOutside();
/* other stuff */
// body
/* actual code of pVisibleOutside and fNOTVisibleOutside(); */
END a;
【问题讨论】:
-
规范中的任何内容都将可供外部调用者使用。正文中包含但未在规范中定义的任何内容都只能在内部调用。请记住,两者是由不同的语句创建的。有关每个
CREATE语句的详细信息,请参阅 the documentation。 -
哇,真快!谢谢!
-
是的,我已经成功创建了几个包,但我只是不(不!)知道可见/不可见功能是如何工作的。再次感谢。
标签: plsql oracle11g plsqldeveloper