DROP LIBRARY

DROP LIBRARYは外部プロシージャ・ライブラリを削除するSQL文である。

外部プロシージャ・ライブラリとは、オペレーティング・システムの共有ライブラリに関連付けられたスキーマ・オブジェクトである。オペレーティング・システムの共有ライブラリとは、Linuxの共有オブジェクト(.so)やWindowsのダイナミック・リンク・ライブラリ(DLL)のことである。

外部プロシージャ・ライブラリを作成すると、ストアド・プロシージャやストアド・ファンクションから共有オブジェクトやDLLの関数を呼び出すことができる。外部プロシージャ・ライブラリを削除すると、それを参照するストアド・プロシージャやストアド・ファンクションを利用できなくなる。

ライブラリを削除する

DROP LIBRARY文の構文は次のとおり。

DROP LIBRARY name
name
削除する外部プロシージャ・ライブラリの名前を指定する。

外部プロシージャ・ライブラリを削除するSQL文の例を次に示す。

DROP LIBRARY example_lib;

必要な権限

外部プロシージャ・ライブラリを削除するには、DROP ANY LIBRARY システム権限が必要である。

外部プロシージャ・ライブラリを削除する権限をユーザー tsuka に付与するには、次のSQL文を実行する。

GRANT DROP ANY LIBRARY TO tsuka;

トランザクション

SQLはデータ定義言語(DDL)、データ操作言語(DML)およびデータ制御言語(DCL)の3種類に分類されいる。DROP LIBRARY文はDDL(Data Definition Language)である。

DDLに対するトランザクションの扱いは、リレーショナル・データベース管理システムによって異なる。Oracleデータベースの場合、DDL文を実行すると暗黙的にコミットされ、ロールバックできない。

DDLのトランザクション
RDBMS 暗黙的なコミット
Oracle Database される
MySQL される
PostgreSQL されない
Microsoft SQL Server されない

PL/SQL

PL/SQLでもDROP LIBRARY文を使用できる。構文はSQLと同じである。

DROP LIBRARY example_lib;

ライブラリに関するSQL

外部プロシージャ・ライブラリに関するSQL文には、次のものがある。

外部プロシージャ・ライブラリに関するSQL
SQL 説明
CREATE LIBRARY 外部プロシージャ・ライブラリを作成する。
ALTER LIBRARY 外部プロシージャ・ライブラリを変更する。
DROP LIBRARY 外部プロシージャ・ライブラリを削除する。

ライブラリに関するデータ・ディクショナリ・ビュー

外部プロシージャ・ライブラリに関するデータ・ディクショナリ・ビューには、次のものがある。

外部プロシージャ・ライブラリに関するデータ・ディクショナリ・ビュー
データ・ディクショナリ・ビュー 説明
ALL_LIBRARIES 現在のユーザがアクセスできる外部プロシージャ・ライブラリ
DBA_LIBRARIES Oracleデータベース内すべての外部プロシージャ・ライブラリ
USER_LIBRARIES 現在のユーザが所有する外部プロシージャ・ライブラリ

次のSQL文を実行することで、自分が所有する外部プロシージャ・ライブラリの一覧を確認できる。

SQL> SELECT LIBRARY_NAME, FILE_SPEC FROM USER_LIBRARIES;

LIBRARY_NAME FILE_SPEC
------------ -------------------
lib_example  /usr/lib/example.so
lib_app      /usr/lib/app.so

ライブラリに関するシステム権限

外部プロシージャ・ライブラリに関するシステム権限には、次のものがある。

外部プロシージャ・ライブラリに関するシステム権限
システム権限 説明
CREATE LIBRARY 自分のスキーマにライブラリを作成できる。
CREATE ANY LIBRARY 任意のスキーマにライブラリを作成できる。
ALTER ANY LIBRARY 任意のスキーマのライブラリを明示的に再コンパイルできる。
DROP ANY LIBRARY 任意のスキーマのライブラリを削除できる。
EXECUTE ANY LIBRARY 任意のスキーマのライブラリを使用できる。

ライブラリに関するオブジェクト権限

外部プロシージャ・ライブラリに関するオブジェクト権限には、次のものがある。

外部プロシージャ・ライブラリに関するオブジェクト権限
オブジェクト権限 説明
EXECUTE 外部プロシージャ・ライブラリを使用できる。

SQL

Oracleデータベースには、次のSQL文がある。