The Package Name clause specifies an explicit path to a package file that is to be used for this external procedure definition. Packages are libraries that can contain external procedure C or C++ functions and other functions to be called by an external procedure.
A typical package includes a function library as well as a script that contains all the necessary SQL DDL and DCL statements to create the procedures and make them available to users.
A package is a shared object file with a .so extension for Linux systems.
Package files must be distributed to all server nodes.
You cannot specify the package option with any other encoded path string clause, but you can specify it with a procedure entry point name string (see EXTERNAL NAME Clause).
- Install the package in a specific directory and then use PCL to distribute it to all nodes.
- FTP the package from a client system.
The syntax for this clause is as follows.
The character ¡ represents a user-defined delimiter.
If the package supports SQL calls, then you must specify the name of the API that is to handle those calls in addition to specifying an appropriate SQL Data Access option.
See Specifying the CLI Option for the EXTERNAL NAME Package Clause and SQL DATA ACCESS Clause for details.
Perform the following procedure for specifying a package file name string.
- Begin the clause with the character S to indicate this is a server specification.
- Type the character P to indicate this is a package file specification.
- Specify an arbitrary delimiter character to separate the P code and the package name specified in the string.
- Specify the path and name assigned to the package file on the server.
The package file extension must be .so for Linux systems.
The path must name a package or API that is already installed on the system and that has been distributed to all its nodes. Its maximum length is 256 characters.
All names on server must be unique among the UDFs, table UDFs, and external procedures created within the same database. If the CREATE/REPLACE PROCEDURE definition includes a nonunique name_on_server specification, the system does not create it.
You can use either \ or / characters to specify the path for all platforms.