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

戻る
戻る
 
次へ
次へ
 


DROP STORAGE MAP文

指定した記憶域マップの定義を削除します。

環境

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


形式



引数

IF EXISTS

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

map-name

削除する記憶域マップの名前を指定します。

使用方法


例1: 対話型SQLにおける記憶域マップの削除

この例では記憶域マップを削除します。データを含む表を参照する記憶域マップは削除できません。


SQL> ATTACH 'FILENAME mf_personnel';
SQL> DROP STORAGE MAP WORK_STATUS_MAP;
%RDB-E-NO_META_UPDATE, metadata update failed
-RDMS-F-RELNOTEMPTY, relation WORK_STATUS has data in it
SQL> DELETE FROM WORK_STATUS;
3 rows deleted
SQL> DROP STORAGE MAP WORK_STATUS_MAP;
SQL>


DROP SYNONYM文

シノニム定義を削除します。

環境

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


形式



引数

CASCADE

他のデータベース・オブジェクトでこの名前が参照されている場合でも、SQLでシノニム定義を削除することを指定します。これにより後で問合せ実行のエラーが発生する場合があります。この名前を参照するストアド・ファンクション、ストアド・プロシージャおよびトリガーは無効であるとマークされます。

IF EXISTS

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

PUBLIC

このオプションの句は、Oracleデータベース・サーバーとの互換性を目的としています。Oracle Rdbでは現在使用されていません。使用するかどうかは、将来のリリースで決定します。アプリケーションではPUBLICキーワードの使用をお薦めします。

RESTRICT

この名前を参照するデータベース・オブジェクトが検出された場合でも、SQLでDROP文を中断することを指定します。これはデフォルトです。

synonym-name

削除する既存のシノニムの名前です。

使用方法


例1: シノニムの削除


SQL> DROP PUBLIC SYNONYM employees CASCADE;


 


DROP TABLE文

指定した表定義を削除します。

データベースにアタッチする際にPATHNAME修飾子を使用している場合、DROP TABLE文でもリポジトリから表が削除されます。


環境

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


形式



引数

CASCADE

指定された表を参照するその他の定義(制約、索引、モジュール、記憶域マップ、トリガーおよびビュー)をすべて削除してから表定義を削除するように指定します。これはカスケード削除と呼ばれます。ルーチンまたは言語セマンティクス依存性のあるストアド・ルーチンまたはトリガーの場合、対象となるルーチンおよびトリガーも無効としてマークされます。

IF EXISTS

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

RESTRICT

指定した表定義のみを削除するように指定します。指定した表を参照する制約、モジュール、トリガーまたはビューが定義されている場合、SQLでは表は削除されません。指定した表を参照する索引または記憶域マップがある場合、SQLでは表と記憶域マップが削除されますが、エラー・メッセージは発行されません。

table-name

削除する表定義の名前を指定します。

使用方法


例1: アタッチ・データベースからの表の削除


SQL> ATTACH 'ALIAS PERS FILENAME personnel';
SQL> DROP TABLE PERS.DEGREES;
SQL> COMMIT;

例2: デフォルト・データベースからの参照元である表および定義の削除


SQL> ATTACH 'FILENAME corporate_data';
SQL> DROP TABLE ADMINISTRATION.PERSONNEL.EMPLOYEES CASCADE;
View ADMINISTRATION.PERSONNEL.REVIEW_DATE is also being dropped.
View ADMINISTRATION.PERSONNEL.CURRENT_INFO is also being dropped.
View ADMINISTRATION.PERSONNEL.CURRENT_SALARY is also being dropped.
View ADMINISTRATION.PERSONNEL.CURRENT_JOB is also being dropped.
Constraint ADMINISTRATION.RECRUITING.DEGREES_FOREIGN2 is also being dropped.
Constraint ADMINISTRATION.PERSONNEL.EMPLOYEES_PRIMARY_EMPLOYEE_ID is also
being dropped.
Constraint ADMINISTRATION.PERSONNEL.EMP_SEX_VALUES is also being dropped.
Constraint ADMINISTRATION.PERSONNEL.HOURLY_HISTORY_FOREIGN1 is also being
dropped.
Constraint ADMINISTRATION.PERSONNEL.JOB_HISTORY_FOREIGN1 is also being
dropped.
Constraint ADMINISTRATION.RECRUITING.RESUMES_FOREIGN2 is also being dropped.
Constraint ADMINISTRATION.PERSONNEL.SALARY_HISTORY_FOREIGN1 is also being
dropped.
Constraint ADMINISTRATION.PERSONNEL.STATUS_CODE_VALUES is also being dropped.
Index ADMINISTRATION.PERSONNEL.EMP_LAST_NAME is also being dropped.
Index ADMINISTRATION.PERSONNEL.EMP_EMPLOYEE_ID is also being dropped.
Trigger ADMINISTRATION.PERSONNEL.EMPLOYEE_ID_CASCADE_DELETE is also being
dropped.
Trigger ADMINISTRATION.PERSONNEL.STATUS_CODE_CASCADE_UPDATE is also being
dropped.


DROP TRIGGER文

物理データベースからトリガー定義を削除します。データベースがPATHNAME修飾子を使用してアタッチされている場合は、リポジトリから削除します。

環境

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


形式



引数

IF EXISTS

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

trigger-name

削除対象のトリガーの名前を変更します。

使用方法


例1: EMPLOYEE_ID_CASCADE_DELETEトリガーの削除


SQL> ATTACH 'FILENAME personnel';
SQL> SHOW TRIGGERS
User triggers in database with filename PERSONNEL
     COLLEGE_CODE_CASCADE_UPDATE
     EMPLOYEE_ID_CASCADE_DELETE
     STATUS_CODE_CASCADE_UPDATE
SQL> DROP TRIGGER EMPLOYEE_ID_CASCADE_DELETE;
SQL> SHOW TRIGGERS
User trigggers in database with filename PERSONNEL
     COLLEGE_CODE_CASCADE_UPDATE
     STATUS_CODE_CASCADE_UPDATE
SQL>


DROP USER文

データベースからユーザー名や特殊ユーザー・クラスのエントリ(CREATE USER文またはGRANT文で作成されたエントリなど)を削除します。

環境

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


形式



引数

CASCADE

CASCADE句により、指定したユーザーをデータベースから削除し、アクセス制御リスト(ACL)、モジュールおよびスキーマに存在する、このユーザーへの参照をすべて削除します。PUBLICユーザーを削除した場合、ACLはPUBLICエントリの削除のために処理されません。

RESTRICT

RESTRICT句で指定したユーザーが削除されます。別のACLにこのユーザーへの参照がある場合は、DROP USER文は失敗します。

デフォルトはRESTRICT句です。

username

データベース内の既存のユーザー名です。

使用方法


例1: ユーザーの削除


SQL> SHOW USER
Users in database with filename mf_personnel.rdb
     JSMITH
     NSTUART
SQL> DROP USER JSMITH;
SQL> SHOW USER
Users in database with filename mf_personnel.rdb
     NSTUART
SQL>


DROP VIEW文

指定したビュー定義を削除します。DROP VIEW文を実行すると、SQLによりデータベースからビュー定義が削除されます。PATHNAME修飾子を使用してデータベースにアタッチしている場合、SQLではビュー定義もリポジトリから削除します。

環境

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


形式



引数

CASCADE

指定されたビューを参照するその他のビュー定義を削除してからそのビュー定義を削除するように指定します。これはカスケード削除と呼ばれます。ルーチンまたは言語セマンティクス依存性のあるストアド・ルーチンまたはトリガーで参照されるビューを削除する場合、対象となるルーチンおよびトリガーも無効としてマークされます。

IF EXISTS

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

RESTRICT

指定したビュー定義のみを削除するように指定します。指定したビューを参照する他のビュー、トリガーまたはルーチンがある場合、その削除は失敗します。デフォルトはRESTRICTです。

view-name

削除するビュー定義の名前を指定します。

使用方法


例1: ビュー定義の削除

次の例では、ビュー定義CURRENT_INFOが削除されます。


SQL> DROP VIEW CURRENT_INFO;
SQL> COMMIT;

例2: 依存ビューのあるビューの削除

この例では、DROP VIEW文で名前が付けられたビューを参照するビューが自動的に削除されないことを示します。CASCADEキーワードを使用して、依存ビューのあるビューを削除する必要があります。


SQL> DROP VIEW CURRENT_JOB;
%RDB-E-NO_META_UPDATE, metadata update failed
-RDMS-F-VIEWINVIEW, view CURRENT_JOB is referenced by view CURRENT_INFO
-RDMS-F-VIEWNOTDEL, view CURRENT_JOB has not been deleted
SQL> DROP VIEW CURRENT_JOB CASCADE;
View CURRENT_INFO is also being dropped.
SQL> COMMIT;

例3: データベースへの新規定義の追加

事前定義されたSQLスクリプトを使用してメタデータ定義を更新する場合、保持しているデータベースの一部に存在しないオブジェクトの削除が必要になることがあります。たとえば、DROP VIEWを追加すると次に示すエラーが発生する場合があります。


SQL> drop view CURRENT_INFO;
%SQL-F-RELNOTDEF, Table CURRENT_INFO is not defined in database or schema
SQL> create view CURRENT_INFO
cont> ...etc...

IF EXISTS句を使用するとエラー・メッセージが抑制され、メンテナンス・スクリプト実行の混乱が軽減されます。


SQL> drop view CURRENT_INFO if exists;
SQL> create view CURRENT_INFO
cont> ...etc...