日本語PDF

14.20 DROP TYPE文

DROP TYPE文は、ADT、VARRAY型またはネストした表型の仕様部および本体を削除します。

ここでのトピック

前提条件

ADT、VARRAY型またはネストした表型が自分のスキーマ内にある必要があります。自分のスキーマ内にない場合は、DROP ANY TYPEシステム権限が必要です。

構文

セマンティクス

schema

型が含まれているスキーマの名前。デフォルト: 自分のスキーマ。

type_name

削除するオブジェクト型、VARRAY型またはネストした表型の名前。型依存性または表依存性のない型のみ削除できます。

type_nameがスーパータイプの場合、FORCEも指定しないかぎり、この文は正常に実行されません。FORCEを指定すると、そのスーパータイプに依存するすべてのサブタイプが無効になります。

type_nameが統計タイプの場合、FORCEも指定しないかぎり、この文は正常に実行されません。FORCEを指定した場合、最初にtype_nameに関連付けられたすべてのオブジェクトの関連付けが解除され、type_nameが削除されます。

関連項目:

type_nameが統計タイプに関連付けられたADTの場合は、まずこの統計タイプからtype_nameの関連付けが解除され、次にtype_nameが削除されます。ただし、統計タイプを使用して統計情報が収集された場合は、データベースでこの統計タイプからtype_nameの関連付けを解除することはできないため、この文は正常に実行されません。

type_nameが索引タイプの実装タイプの場合は、索引タイプにINVALIDのマークが付けられます。

type_nameにパブリック・シノニムが定義されている場合は、このシノニムも削除されます。

FORCEを指定しないかぎり、削除できるのは、依存性のないスタンドアロンのスキーマ・オブジェクトとして定義されている型のみです。これはデフォルトの動作です。

関連項目:

CREATE INDEXTYPE文の詳細は、『Oracle Database SQL言語リファレンス』を参照してください。

FORCE

依存するデータベース・オブジェクトが型に含まれている場合でもその型を削除します。削除する型に依存するすべての列がデータベースによってUNUSEDとマークされ、それらの列へのアクセスができなくなります。

ノート:

FORCEを使用した、依存性のあるオブジェクト型の削除は行わないことをお薦めします。この操作はリカバリ不能であり、依存表または列のデータにアクセスできなくなる場合があります。

VALIDATE

この型のインスタンスがスーパータイプのいずれかの置換可能な列に格納されていることをデータベースによって確認できます。このようなインスタンスがない場合、削除操作が完了します。

この句はサブタイプのみに意味があります。明示的な型または表依存性のないサブタイプを安全に削除するために、このオプションの使用をお薦めします。

例14-37 ADTの削除

この文は、ADT person_tを削除します。このADTの作成例は、「CREATE TYPE文」を参照してください。person_tに依存するすべての列に、UNUSEDのマークが付けられ、アクセスできなくなります。

DROP TYPE person_t FORCE;