Use the CREATE LIBRARY statement to create a schema object associated with an operating-system shared library. The name of this schema object can then be used in the call_spec of CREATE FUNCTION or CREATE PROCEDURE statements, or when declaring a function or procedure in a package or type, so that SQL and PL/SQL can call to third-generation-language (3GL) functions and procedures.

See Also:

CREATE FUNCTION and PL/SQL User's Guide and Reference for more information on functions and procedures


To create a library in your own schema, you must have the CREATE LIBRARY system privilege. To create a library in another user's schema, you must have the CREATE ANY LIBRARY system privilege. To use the procedures and functions stored in the library, you must have the EXECUTE object privilege on the library.

The CREATE LIBRARY statement is valid only on platforms that support shared libraries and dynamic linking.



Description of create_library.gif follows
Description of the illustration create_library.gif



Specify OR REPLACE to re-create the library if it already exists. Use this clause to change the definition of an existing library without dropping, re-creating, and regranting schema object privileges granted on it.

Users who had previously been granted privileges on a redefined library can still access the library without being regranted the privileges.


Specify the name that will represent this library when a user declares a function or procedure with a call_spec.


Specify a string literal, enclosed in single quotation marks. This string should be the path or filename your operating system recognizes as naming the shared library.

The filename is not interpreted during execution of the CREATE LIBRARY statement. The existence of the library file is not checked until an attempt is made to execute a routine from it.

AGENT Clause

Specify the AGENT clause if you want external procedures to be run from a database link other than the server. Oracle Database will use the database link specified by agent_dblink to run external procedures. If you omit this clause, the default agent on the server (extproc) will run external procedures.


Creating a Library: Examples The following statement creates library ext_lib:

CREATE LIBRARY ext_lib AS '/OR/lib/';

The following statement re-creates library ext_lib:


Specifying an External Procedure Agent: Example The following example creates a library app_lib and specifies that external procedures will be run from the public database

CREATE LIBRARY app_lib as '${ORACLE_HOME}/lib/'
   AGENT '';

See Also:

"Defining a Public Database Link: Example" for information on creating database links