PACKAGE NAME句では、この外部プロシージャ定義に使用するパッケージ ファイルへの明示的なパスを指定します。パッケージは、外部プロシージャCまたはC++関数および外部プロシージャにより呼び出されるその他の関数を格納するライブラリです。
典型的なパッケージには、関数ライブラリ、およびプロシージャを作成してユーザーに提供するために必要なSQLのDDL文とDCL文を含むスクリプトが含まれます。
パッケージは、Linuxシステムでは.so拡張子を持つ共有オブジェクト ファイルです。
パッケージ ファイルは、すべてのサーバー ノードに配布する必要があります。
パッケージ オプションは、他のエンコードされたパス文字列句と共に指定することはできませんが、プロシージャのエントリ ポイント名の文字列と共に指定することはできます(EXTERNAL NAME句を参照)。
- パッケージを特定のディレクトリにインストールしてから、PCLを使用してパッケージをすべてのノードに配布します。
- クライアント システムからFTP経由でパッケージを入手します。
この句の構文は、以下のとおりです。
SP¡package_name
文字¡は、ユーザー定義の区切り記号を表わします。
パッケージがSQL呼び出しをサポートする場合、適切なSQL DATA ACCESSオプションを指定するほかに、これらの呼び出しを処理するAPIの名前も指定する必要があります。
詳細は、EXTERNAL NAMEパッケージ句のCLIオプションの指定およびSQL DATA ACCESS句を参照してください。
以下の手順に従って、パッケージ ファイル名の文字列を指定します。
- この句の先頭に文字Sを入力して、これがサーバー指定であることを示します。
- 文字Pを入力して、これがパッケージ ファイルの指定であることを示します。
- 任意の区切り記号を使用して、文字列内に指定するPコードとパッケージ名を区分します。
- サーバー上のパッケージ ファイルに割り当てられたパスと名前を指定します。
パッケージ ファイルの拡張子は、Linuxシステムでは.soでなければなりません。
パスには、システムにすでにインストールされていて、そのすべてのノードに配布されているパッケージまたはAPIの名前を指定する必要があります。その最大長は256文字です。
name_on_serverはすべて、同じデータベース内に作成されたUDF、テーブルUDF、および外部プロシージャの間で固有でなければなりません。CREATE/REPLACE PROCEDURE定義に非固有のname_on_serverの指定が含まれる場合、システムはそれを作成しません。
すべてのプラットフォームで、\または/記号を使用してパスを指定できます。