CREATE LIBRARY
目的
CREATE
LIBRARY
文を使用すると、オペレーティング・システム共有ライブラリに関連するスキーマ・オブジェクトを作成できます。このスキーマ・オブジェクトの名前は、CREATE
FUNCTION
またはCREATE
PROCEDURE
文のcall_spec
で使用できます。また、パッケージまたは型におけるファンクションまたはプロシージャを宣言する際にも使用できます。これによって、SQLおよびPL/SQLは、第三世代言語(3GL)ファンクションおよびプロシージャに対してコールできます。
関連項目:
ファンクションおよびプロシージャの詳細は、「CREATE FUNCTION」および『Oracle Database PL/SQL言語リファレンス』を参照してください。
前提条件
CREATE
LIBRARY
文は、共有ライブラリおよび動的リンクをサポートするプラットフォーム上でのみ有効です。
自分のスキーマ内にライブラリを作成する場合は、CREATE
LIBRARY
システム権限が必要です。他のユーザーのスキーマ内にライブラリを作成する場合は、CREATE
ANY
LIBRARY
システム権限が必要です。
CREATE
FUNCTION
文のcall_spec
でライブラリを使用したり、パッケージまたは型のファンクションを宣言する場合には、そのライブラリに対するEXECUTE
オブジェクト権限とCREATE
FUNCTION
システム権限が必要です。CREATE
FUNCTION
文のcall_spec
の詳細は、『Oracle Database PL/SQL言語リファレンス』を参照してください。
CREATE
PROCEDURE
文のcall_spec
でライブラリを使用したり、パッケージまたは型のプロシージャを宣言する場合には、そのライブラリに対するEXECUTE
オブジェクト権限とCREATE
PROCEDURE
システム権限が必要です。CREATE
PROCEDURE
文のcall_spec
の詳細は、『Oracle Database PL/SQL言語リファレンス』を参照してください。
call_spec
で定義したプロシージャまたはファンクション(パッケージまたは型で定義したプロシージャまたはファンクションを含む)を実行するには、そのプロシージャまたはファンクションに対するEXECUTE
オブジェクト権限が必要です(ただし、ライブラリに対するEXECUTE
オブジェクト権限は不要です)。
構文
ライブラリはPL/SQLを使用して定義されます。このため、このマニュアルの構文図ではSQLキーワードのみを示します。PL/SQLの構文、セマンティクスおよび例については、『Oracle Database PL/SQL言語リファレンス』を参照してください。
create_library::=
(plsql_library_source
: 『Oracle Database PL/SQL言語リファレンス』を参照。)
セマンティクス
OR REPLACE
OR
REPLACE
を指定すると、既存のライブラリを再作成できます。この句を指定した場合、既存のライブラリに付与されているオブジェクト権限を削除、再作成および再付与しなくても、ライブラリの定義を変更できます。
再定義したライブラリに対して権限を付与されていたユーザーは、権限を再付与されなくてもライブラリにアクセスできます。
IF NOT EXISTS
IF NOT EXISTS
を指定すると、次の効果が得られます。
-
ライブラリが存在していない場合は、文の最後に新しいライブラリが作成されます。
-
ライブラリが存在している場合、これは文の最後の時点にあるライブラリになります。古いものが検出されるため、新しいものは作成されません。
単一の文には、一度に1つのOR REPLACE
またはIF NOT EXISTS
を指定できます。同じ文でOR REPLACE
とIF NOT EXISTS
の両方を使用すると、ORA-11541: REPLACE and IF NOT EXISTS cannot coexist in the same DDL statement
というエラーが発生します。
IF EXISTS
はCREATE
とともに使用すると、ORA-11543: Incorrect IF NOT EXISTS clause for CREATE statement
が発生します。
[ EDITIONABLE | NONEDITIONABLE ]
この句を使用すると、schema
のスキーマ・オブジェクト・タイプLIBRARY
のエディショニングが有効化されたときに、そのライブラリをエディション・オブジェクトにするか非エディション・オブジェクトにするかを指定できます。デフォルトは、EDITIONABLE
です。エディション・オブジェクトと非エディション・オブジェクトの詳細は、『Oracle Database開発ガイド』を参照してください。
plsql_library_source
plsql_library_source
の構文およびセマンティクスについては、『Oracle Database PL/SQL言語リファレンス』を参照してください。