DROP LIBRARYは外部プロシージャ・ライブラリを削除するSQL文である。
外部プロシージャ・ライブラリとは、オペレーティング・システムの共有ライブラリに関連付けられたスキーマ・オブジェクトである。オペレーティング・システムの共有ライブラリとは、Linuxの共有オブジェクト(.so)やWindowsのダイナミック・リンク・ライブラリ(DLL)のことである。
外部プロシージャ・ライブラリを作成すると、ストアド・プロシージャやストアド・ファンクションから共有オブジェクトやDLLの関数を呼び出すことができる。外部プロシージャ・ライブラリを削除すると、それを参照するストアド・プロシージャやストアド・ファンクションを利用できなくなる。
DROP LIBRARY文の構文は次のとおり。
DROP LIBRARY name
外部プロシージャ・ライブラリを削除するSQL文の例を次に示す。
DROP LIBRARY example_lib;
外部プロシージャ・ライブラリを削除するには、DROP ANY LIBRARY システム権限が必要である。
外部プロシージャ・ライブラリを削除する権限をユーザー tsuka に付与するには、次のSQL文を実行する。
GRANT DROP ANY LIBRARY TO tsuka;
SQLはデータ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)およびトランザクション制御言語(TCL)の4種類に分類される。DROP LIBRARY文はDDL(Data Definition Language)の一種である。
DDLに対するトランザクションの扱いは、リレーショナル・データベース管理システムによって異なる。Oracleデータベースの場合、DDL文を実行するとトランザクションは暗黙的にコミットされ、ロールバックできない。
RDBMS | 直前のトランザクション | DDL自体のロールバック |
---|---|---|
Oracle Database | 自動的にコミットされる | ロールバックできない |
MariaDB | 自動的にコミットされる | ロールバックできない |
MySQL | 自動的にコミットされる | ロールバックできない |
PostgreSQL | 自動的にコミットされない | ロールバックできる |
Microsoft SQL Server | 自動的にコミットされない | ロールバックできる |
PL/SQLでもDROP LIBRARY文を使用できる。構文はSQLと同じである。
DROP LIBRARY example_lib;
外部プロシージャ・ライブラリに関するSQL文には、次のものがある。
SQL | 説明 |
---|---|
CREATE LIBRARY | 外部プロシージャ・ライブラリを作成する。 |
ALTER LIBRARY | 外部プロシージャ・ライブラリを変更する。 |
DROP LIBRARY | 外部プロシージャ・ライブラリを削除する。 |