Oracle® Database SQL Language Reference 11g Release 1 (11.1) Part Number B28286-01 |
|
|
View PDF |
Purpose
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 Oracle Database PL/SQL Language Reference for more information on functions and proceduresPrerequisites
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.
Syntax
create_library::=
Semantics
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.
libname
Specify the name that will represent this library when a user declares a function or procedure with a call_spec
.
filename
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.
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, then the default agent on the server (extproc
) will run external procedures.
Examples
Creating a Library: Examples The following statement creates library ext_lib
:
CREATE LIBRARY ext_lib AS '/OR/lib/ext_lib.so'; /
The following statement re-creates library ext_lib
:
CREATE OR REPLACE LIBRARY ext_lib IS '/OR/newlib/ext_lib.so'; /
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 sales.hq.acme.com
:
CREATE LIBRARY app_lib as '${ORACLE_HOME}/lib/app_lib.so' AGENT 'sales.hq.acme.com'; /
See Also:
"Defining a Public Database Link: Example" for information on creating database links