Oracleデータベースの外部プロシージャ・ライブラリ

ライブラリとは、オペレーティングシステムの共有ライブラリに関連付けられたスキーマ・オブジェクトである。

目次

  1. SQL
    1. CREATE LIBRARY
    2. ALTER LIBRARY
    3. DROP LIBRARY
  2. システム権限
    1. ALTER ANY LIBRARY
    2. CREATE LIBRARY
    3. CREATE ANY LIBRARY
    4. DROP ANY LIBRARY
  3. データディクショナリ
    1. ALL_LIBRARIES
    2. DBA_LIBRARIES
    3. USER_LIBRARIES

SQL

ライブラリ関するSQL文を次に示す。

CREATE LIBRARY
ライブラリを作成する。
ALTER LIBRARY
ライブラリを変更する。
DROP LIBRARY
ライブラリを削除する。

CREATE LIBRARY

CREATE LIBRARYとは、外部プロシージャライブラリを作成するSQL文である。

自分のスキーマに外部プロシージャライブラリを作成するには、CREATE LIBRARYシステム権限が必要である。任意のスキーマに外部プロシージャライブラリを作成するには、CREATE ANY LIBRARYシステム権限が必要である。

CREATE [OR REPLACE] LIBRARY [schema.]name {AS|IS} 'filename'
OR REPLACE
作成するライブラリが既に存在した場合は、ライブラリを再作成する。
schema
ライブラリを作成するスキーマを指定する。スキーマの指定を省略した場合は、自分のスキーマにライブラリを作成する。
name
作成するライブラリの名前を指定する。
filename
ライブラリのパスを指定する。

ライブラリを作成する例を示す。

CREATE OR REPLACE LIBRARY mylib AS '/opt/app/oracle/product/11.2.0/db_64/lib/libmylib.so'

ALTER LIBRARY

ALTER LIBRARYとは、外部プロシージャライブラリを明示的に再コンパイルするSQL文である。 ALTER LIBRARYでライブラリファイルのパス名を変更することはできない。 ライブラリファイルのパス名を変更するには、CREATE OR REPLACE LIBRARYで外部プロシージャライブラリを再定義する。

任意のスキーマの外部プロシージャライブラリを明示的に再コンパイルするには、ALTER ANY LIBRARYシステム権限が必要である。

ALTER LIBRARY [schema.]name COMPILE

システム権限

外部プロシージャ・ライブラリに関するシステム権限を以下に示す。

ALTER ANY LIBRARY

ALTER ANY LIBRARY は、任意のスキーマの外部プロシージャ・ライブラリを明示的に再コンパイルできるシステム権限である。

CREATE LIBRARY

CREATE LIBRARY は、自分のスキーマに外部プロシージャ・ライブラリを作成できるシステム権限である。

CREATE ANY LIBRARY

CREATE ANY LIBRARY は、任意のスキーマに外部プロシージャ・ライブラリを作成できるシステム権限である。

DROP ANY LIBRARY

DROP ANY LIBRARY は、任意のスキーマの外部プロシージャ・ライブラリを削除できるシステム権限である。

データディクショナリ

外部プロシージャ・ライブラリに関するデータ・ディクショナリ・ビューを以下に示す。

ALL_LIBRARIES

ALL_LIBRARIES は、現在のユーザがアクセスできる外部プロシージャ・ライブラリを示すデータ・ディクショナリ・ビューである。

DBA_LIBRARIES

DBA_LIBRARIES は、Oracleデータベース内すべての外部プロシージャ・ライブラリを示すデータ・ディクショナリ・ビューである。

USER_LIBRARIES

USER_LIBRARIES は、現在のユーザが所有する外部プロシージャ・ライブラリを示すデータ・ディクショナリ・ビューである。