DROP TYPE文は、オブジェクト型、VARRAY型またはネストした表型の仕様部および本体を削除します。
前提条件
オブジェクト型、VARRAY型またはネストした表型が自身のスキーマ内にある必要があります。自身のスキーマ内にない場合は、DROP ANY TYPEシステム権限が必要です。
構文
drop_type::=

キーワードとパラメータの説明
schema
型が含まれているスキーマを指定します。 schemaを省略すると、型は自身のスキーマ内に存在するとみなされます。
削除するオブジェクト型、VARRAY型またはネストした表型の名前を指定します。 型依存性または表依存性のない型のみ削除できます。
type_nameがスーパータイプの場合、FORCEも指定しないかぎり、この文は正常に実行されません。 FORCEを指定すると、データベースによって、スーパータイプに依存するすべてのサブタイプが無効にされます。
type_nameが統計タイプの場合、FORCEも指定しないかぎり、この文は正常に実行されません。 FORCEを指定すると、まずtype_nameに関連付けられたすべてのオブジェクトの関連付けが解除され、次にtype_nameが削除されます。
|
参照:
|
type_nameが統計タイプに関連付けられたオブジェクト型の場合は、まずこの統計タイプからtype_nameの関連付けが解除され、次にtype_nameが削除されます。 ただし、統計タイプを使用して統計情報が収集された場合は、この統計タイプからtype_nameの関連付けを解除することはできません。このため、この文は正常に実行されません。
type_nameが索引タイプの実装タイプの場合は、索引タイプにINVALIDのマークが付けられます。
type_nameにパブリック・シノニムが定義されている場合は、このシノニムも削除されます。
FORCEを指定しないかぎり、削除できるのは、依存性のないスタンドアロンのスキーマ・オブジェクトとして定義されているオブジェクト型、ネストした表型またはVARRAY型のみです。 これはデフォルトの動作です。
|
参照: CREATE INDEXTYPE文の詳細は、『Oracle Database SQL言語リファレンス』を参照してください。 |
FORCEを指定すると、依存するデータベース・オブジェクトを持つ型でも削除できます。データベースによって、削除する型に依存するすべての列にUNUSEDのマークが付けられ、それらの列へのアクセスができなくなります。
|
注意: FORCEを使用した、依存性のあるオブジェクト型の削除は行わないことをお薦めします。 この操作はリカバリ不能であり、依存表または列のデータにアクセスできなくなる場合があります。 |
型の削除時にVALIDATEを指定すると、格納されているこの型のインスタンスがスーパータイプのいずれかの置換可能な列の範囲であることがデータベースによって確認されます。 このようなインスタンスが検出されなかった場合、削除操作は完了します。
この句はサブタイプに対してのみ意味があります。 明示的な型依存性または表依存性のないサブタイプを安全に削除するために、このオプションを使用することをお薦めします。
例
オブジェクト型の削除: 例 次の文は、オブジェクト型person_tを削除します。 このオブジェクト型を作成する例については、「型階層の例」を参照してください。 person_tに依存するすべての列に、UNUSEDのマークが付けられ、アクセスできなくなります。
DROP TYPE person_t FORCE;
関連トピック