ヘッダーをスキップ
Oracle Rdb SQLリファレンス・マニュアル
リリース7.2
E06178-01
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 


DROP OUTLINE文

問合せアウトラインを削除します。

環境

DROP OUTLINE文は次の環境で使用できます。

DROP OUTLINE文により、ユーザーは既存のアウトラインをデータベースから削除するように指定できます。


形式



引数

IF EXISTS

被参照オブジェクトがデータベースに存在しない場合に、SQLコマンド言語によってエラー・メッセージが表示されないようにします。

outline-name

削除するアウトラインの名前を指定します。

使用方法


例1: アウトラインの削除


SQL> DROP OUTLINE MY_OUTLINE;


DROP PATHNAME文

リポジトリ定義を削除します。物理データベース・ファイルは削除されません。

環境

DROP PATHNAME文は次の環境で使用できます。


形式



引数

path-name

スキーマ定義のリポジトリ・パス名を指定します。

フルパス名または相対パス名のどちらでも指定できます。相対パス名を使用する場合は、相対パス名の前にあるすべてのパス名セグメントを組み込むように、現行デフォルト・リポジトリが定義されている必要があります。


例1: DROP PATHNAME文によるパス名の削除

次の例では、リポジトリ・ディレクトリCDD$TOP.SQL.DEPT3とそのすべての子を削除します。そのパス名に対応するデータベース・システム・ファイルやデータは削除しません。


SQL> DROP PATHNAME "CDD$TOP.SQL.DEPT3";


DROP PROFILE文

プロファイル定義を削除します。

環境

DROP PROFILE文は次の環境で使用できます。


形式



引数

CASCADE

このオプションによりすべてのユーザー定義は変更され、このプロファイルへの索引が削除されます。

IF EXISTS

被参照オブジェクトがデータベースに存在しない場合に、SQLコマンド言語によってエラー・メッセージが表示されないようにします。

RESTRICT

データベース内のユーザーがプロファイルを使用すると、DROP PROFILE文は失敗します。これはデフォルトです。

使用方法


例1: 大文字と小文字を組み合せたデリミタ付き識別子プロファイル名の使用


SQL> DROP PROFILE Decision_Support;
%RDB-E-NO_META_UPDATE, metadata update failed
-RDMS-E-PRFNEXISTS, a quota does not exist with the name "DECISION_SUPPORT"
SQL> SET DIALECT 'SQL99';
SQL> DROP PROFILE "Decision_Support";
SQL> COMMIT;

例2: CASCADEを使用した、ユーザーからのプロファイル割当ての削除

この例では、プロファイルとユーザー・オブジェクト間に依存性が存在する可能性があることを示します。CASCADEアクションでは、割当て先のすべてのユーザーからプロファイルを削除します。


SQL> create profile DECISION_SUPPORT
cont>     comment is 'restrictions for read-only users'
cont>     default transaction read only
cont>     transaction modes (read only, shared);
SQL>
SQL> show profile DECISION_SUPPORT;
     DECISION_SUPPORT
 Comment:       restrictions for read-only users
     Transaction modes (read only, shared)
     Default transaction read only
SQL>
SQL> create user FREEMAN
cont>     identified externally
cont>     profile DECISION_SUPPORT;
SQL>
SQL> show user FREEMAN;
     FREEMAN
     Identified externally
     Account is unlocked
     Profile: DECISION_SUPPORT
     No roles have been granted to this user
SQL>
SQL> drop profile DECISION_SUPPORT restrict;
%RDB-E-NO_META_UPDATE, metadata update failed
-RDMS-E-PRFINUSE, entry "DECISION_SUPPORT" is referenced by user "FREEMAN"
SQL>
SQL> drop profile DECISION_SUPPORT cascade;
SQL>
SQL> show user FREEMAN;
     FREEMAN
     Identified externally
     Account is unlocked
     No roles have been granted to this user
SQL>
SQL> commit;


DROP ROLE文

CREATE ROLE文またはGRANT文で以前に作成したロールを削除します。

環境

DROP ROLE文は次の環境で使用できます。


形式



引数

CASCADE

指定したロールをデータベースから削除し、他のロールとアクセス制御リスト(ACL)内に存在する、このロールへの参照をすべて削除します。

IF EXISTS

被参照オブジェクトがデータベースに存在しない場合に、SQLコマンド言語によってエラー・メッセージが表示されないようにします。

RESTRICT

指定したロールを削除します。別のロールまたはACLにこのロールへの参照がある場合は、DROP ROLE文は失敗します。

デフォルトはRESTRICT句です。

role-name

データベースの既存のrole-name(CREATE ROLE文で作成したものなど)です。事前定義されたロールは指定できません。詳細は、「使用方法」を参照してください。

使用方法


例1: データベースからのロールの削除


SQL> SHOW ROLES;
Roles in database with filename mf_personnel.rdb
     DOCUMENTATION
SQL> DROP ROLE DOCUMENTATION RESTRICT;
SQL> SHOW ROLES;
Roles in database with filename mf_personnel.rdb
 No Roles Found


DROPルーチン文

Oracle Rdbデータベースからルーチンの定義、外部ルーチンまたはストアド・ルーチンを削除します。外部ルーチンとは、外部ファンクションと外部プロシージャの両方を意味します。ストアド・ルーチンとは、ストアド・ファンクションとストアド・プロシージャの両方を意味します。

環境

DROP FUNCTION文とDROP PROCEDURE文は次の環境で使用できます。


形式



引数

CASCADE

指定されたルーチンに依存性がある場合でも、ルーチン定義を削除します。参照ルーチンは無効であるとマークされます。

IF EXISTS

被参照オブジェクトがデータベースに存在しない場合に、SQLコマンド言語によってエラー・メッセージが表示されないようにします。

DROP FUNCTION routine-name

Oracle Rdbデータベースの外部ファンクションまたはストアド・ファンクション定義の名前を識別します。

DROP PROCEDURE routine-name

Oracle Rdbデータベースの外部プロシージャまたはストアド・プロシージャ定義の名前を識別します。

RESTRICT

ルーチンがOracle Rdbデータベース内の他のオブジェクトによって参照される場合、外部ルーチンまたはストアド・ルーチン定義の削除を回避します。

デフォルトはRESTRICTです。


使用方法


例1: Oracle Rdbデータベースからの外部ファンクション定義の削除

外部ファンクション定義を変更する場合、最初に削除してから計画した変更内容で再作成する必要があります。この例は、COSINE_Fファンクションの削除方法を示しています。


SQL> DROP FUNCTION cosine_f RESTRICT;

例2: ストアド・モジュールからのルーチンの削除

DROP FUNCTION文およびDROP PROCEDURE文を使用すると、ストアド・モジュールからルーチンを削除できます。そのルーチンが他のオブジェクトによって参照されている場合、正常にルーチンを削除するにはCASCADEオプションが必要なことがあります。

同じタスクの実行に使用できるALTER MODULEのDROP FUNCTION句およびDROP PROCEDURE句も参照してください。

この例では、使用されなくなったストアド・モジュールTIME_ROUTINESからファンクションを削除します。


SQL> set dialect 'sql99';
SQL> create database filename junk;
SQL>
SQL> create module TIME_ROUTINES
cont>
cont>     function GET_TIME ()
cont>     returns TIME (2);
cont>     return CURRENT_TIME (2);
cont>
cont>     function DAY_OF_WEEK (in :dt date)
cont>     returns VARCHAR(10);
cont>     return case EXTRACT (weekday from :dt)
cont>             when 1 then 'Monday'
cont>             when 2 then 'Tuesday'
cont>             when 3 then 'Wednesday'
cont>             when 4 then 'Thursday'
cont>             when 5 then 'Friday'
cont>             when 6 then 'Saturday'
cont>             when 7 then 'Sunday'
cont>             else '***'
cont>            end;
cont>
cont> end module;
SQL>
SQL> show module TIME_ROUTINES;
Information for module TIME_ROUTINES

 Header:
 TIME_ROUTINES
 No description found
 Module ID is: 1

 Routines in module TIME_ROUTINES:
     DAY_OF_WEEK
     GET_TIME

SQL> drop function GET_TIME cascade;
SQL> show module TIME_ROUTINES;
Information for module TIME_ROUTINES

 Header:
 TIME_ROUTINES
 No description found
 Module ID is: 1

 Routines in module TIME_ROUTINES:
     DAY_OF_WEEK

SQL>


DROP SCHEMA文

スキーマとそこに含まれるすべての定義を削除します。

環境

DROP SCHEMA文は次の環境で使用できます。


形式



引数

CASCADE

指定されたスキーマを参照するその他の定義(ビュー、制約、表、順序、索引およびトリガー)を削除し、その後、スキーマ定義を削除します。これはカスケード削除と呼ばれます。

CASCADEキーワードを指定すると、SQLではスキーマを削除する前に、スキーマによって格納された定義がすべて削除されます。

CASCADEキーワードを指定しない場合、スキーマは空である必要があります。

IF EXISTS

被参照オブジェクトがデータベースに存在しない場合に、SQLコマンド言語によってエラー・メッセージが表示されないようにします。

RESTRICT

指定したスキーマが他の定義で参照される場合は、エラー・メッセージが返されます。指定したスキーマを参照する他の定義がすべて削除されるまで、DROP SCHEMA RESTRICT文ではスキーマが削除されません。DROP SCHEMA文は、デフォルトでRESTRICTを暗黙的に指定します。

schema-name

スキーマ名を指定します。スキーマがデフォルトのカタログおよびデータベースにない場合、カタログ名および別名でスキーマ名を修飾する必要があります。スキーマ名の詳細は、第2.2.15項を参照してください。

使用方法


例1: 暗黙的なRESTRICTによるスキーマの削除

次の例では、ユーザーはスキーマRECRUITING自体を削除する前に、このスキーマを参照する定義を削除する必要があります。

ユーザーは、デフォルト・スキーマをRECRUITINGに、デフォルト・カタログをADMINISTRATIONに設定した後は、別名CORPのみで各定義名を修飾できます。


SQL> ATTACH 'ALIAS CORP FILENAME CORPORATE_DATA';
SQL> SET CATALOG '"CORP.ADMINISTRATION"';
SQL> SET SCHEMA '"CORP.ADMINISTRATION".RECRUITING';
SQL> SET QUOTING RULES 'SQL92';
SQL> DROP SCHEMA "CORP.RECRUITING";
%RDB-E-NO_META_UPDATE, metadata update failed
-RDMS-E-SCHEMAINUSE, schema RECRUITING currently in use
SQL> DROP TABLE "CORP.CANDIDATES";
SQL> DROP TABLE "CORP.COLLEGES";
%RDB-E-NO_META_UPDATE, metadata update failed
-RDMS-F-CONEXI, relation COLLEGES is referenced in constraint DEGREES_FOREIGN3
-RDMS-F-RELNOTDEL, relation COLLEGES has not been deleted
SQL> DROP TABLE "CORP.DEGREES";
%RDB-E-NO_META_UPDATE, metadata update failed
-RDMS-F-TRGEXI, relation DEGREES is referenced in trigger
EMPLOYEE_ID_CASCADE_DELETE
SQL> DROP TABLE "CORP.RESUMES";
%RDB-E-NO_META_UPDATE, metadata update failed
-RDMS-F-TRGEXI, relation RESUMES is referenced in trigger
EMPLOYEE_ID_CASCADE_DELETE
-RDMS-F-RELNOTDEL, relation RESUMES has not been deleted
SQL> --
SQL> -- The trigger is part of another schema, PERSONNEL. Since this
SQL> -- is not the default schema, the user qualifies the trigger name
SQL> -- with schema and names.
SQL> --
SQL> DROP TRIGGER "CORP.ADMINSTRATION".PERSONNEL.EMPLOYEE_ID_CASCADE_DELETE;
SQL> DROP CONSTRAINT "CORP.DEGREES_FOREIGN3";
%RDB-E-NO_META_UPDATE, metadata update failed
-RDMS-F-CONDELVIAREL, constraint DEGREES_FOREIGN3 can only be deleted by
changing or deleting relation DEGREES
SQL> DROP TABLE "CORP.DEGREES";
SQL> DROP TABLE "CORP.RESUMES";
SQL> DROP TABLE "CORP.COLLEGES";
SQL> DROP SCHEMA "CORP.RECRUITING";

例2: CASCADEによるスキーマの削除

次の例では、スキーマACCOUNTINGを参照する定義が削除されてから、スキーマ自体が削除されます。


SQL> DROP SCHEMA "CORP.ACCOUNTING" CASCADE;
Domain "CORP.ADMINISTRATION".ACCOUNTING.BUDGET is also being dropped.
Domain "CORP.ADMINISTRATION".ACCOUNTING.CODE is also being dropped.
SQL>


DROP SEQUENCE文

指定した順序を削除します。

環境

DROP SEQUENCE文は次の環境で使用できます。


形式



引数

CASCADE

CASCADE句で、順序を参照するすべてのオブジェクトを無効にしてから順序の定義を削除するようSQLに指定します。ルーチンまたは言語セマンティクス依存性のあるストアド・ルーチンまたはトリガーで参照される順序を削除する場合、対象となるストアド・ルーチンまたはトリガーも無効としてマークされます。

IF EXISTS

被参照オブジェクトがデータベースに存在しない場合に、SQLコマンド言語によってエラー・メッセージが表示されないようにします。

RESTRICT

順序がOracle Rdbデータベース内の他のオブジェクトによって参照される場合、RESTRICT句により、順序定義の削除を回避(DROP SEQUENCE文が失敗)します。

デフォルトはRESTRICT句です。

sequence-name

データベース内の既存の順序名です。小文字やSQL許可範囲内にない文字を指定するには、順序名を一重引用符(')で囲みます。

使用方法


例1: 順序の削除


SQL> SHOW SEQUENCE;
Sequences in database with filename mf_personnel.rdb
     EMPID
SQL> DROP SEQUENCE EMPID;
SQL> SHOW SEQUENCE;
Sequences in database with filename mf_personnel.rdb
 No Sequences Found
SQL>