私は以前のJava開発者で、OracleのSQL-Developerを使用してOracleの「パッケージ」を作成しています。Oracle 12 "パッケージ"内で、変数または関数またはプロシージャにアクセス可能またはアクセス不可能にするにはどうすればよいですか?
OracleのWebサイトによれば、一部のオブジェクト(変数、関数、プロシージャ)がパッケージのスコープの外側にアクセスできる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;
仕様に記載されているものは、外部発信者が利用できるものです。本文には含まれていますが、仕様で定義されていないものは内部呼び出し可能です。 2つは異なるステートメントによって作成されることに注意してください。各CREATEステートメントの詳細は、[the documentation](https://docs.oracle.com/database/121/LNPLS/packages.htm#LNPLS009)を参照してください。 –
すごく速かった!ありがとう! – posaunist0205
はい、私は正常にいくつかのパッケージを作成しました。私は、可視/不可視の機能がどのように機能しているかを知っていません。再度、感謝します。 – posaunist0205