含まれるすべての宣言およびプロシージャで共有できる名前範囲を作成します。
package-name: PACKAGE EXPORTS (procedure);
エクスポート対象のプロシージャを示します。すべてのプロシージャ (EXPORTS(*)) または特定の名前のプロシージャを指定します。エクスポートされたプロシージャはパッケージの外部で認識されるようになります。EXPORTS オプションが指定されていない場合は、EXPORTS(*) と見なされます。
パッケージには、宣言、デフォルトの文、およびプロシージャ ブロックが含まれます。パッケージに含まれるレベル 1 のプロシージャの一部またはすべてをエクスポートし、外部プロシージャとしてパッケージの外部で認識されるようにできます。パッケージには任意の数のプロシージャを含めることができ、パッケージ内の任意またはすべてのプロシージャをエクスポートできます。
PACKAGE 文は、使用する場合、コンパイル単位の最初の文である必要があります。PACKAGE 文の形式は次のとおりです。
package-name: PACKAGE : EXPORTS (entry_name, … ) OPTIONS (option, …)
または
package-name: PACKAGE : EXPORTS (* ) OPTIONS (option, …)
エクスポート対象として指定されたレベル 1 の各エントリ名は外部になります。(*) を使用した場合は、レベル 1 のすべてのエントリ ポイントが外部になります。OPTIONS 句には、エントリ ポイント名に適用できるオプションを記述します (BYVALUE など)。FETCHABLE オプションは使用できません。
MYPKG: PACKAGE EXPORTS (A, B); A: PROCEDURE; END; B: PROCEDURE; END; C: PROCEDURE; END; END MYPKG;
この例では、MYPKG はプロシージャ A、B、および C を含むパッケージ名です。プロシージャ A および B は外部となり、C は内部となります。