用途
型本体はPL/SQLを使用して定義されます。このため、この項では一般的な情報について説明します。構文およびセマンティクスの詳細は、『Oracle Database PL/SQL言語リファレンス』を参照してください。
CREATE
TYPE
BODY
を使用すると、オブジェクト型仕様部で定義されたメンバー・メソッドを定義または実装することができます。CREATE
TYPE
文およびCREATE
TYPE
BODY
文を使用してオブジェクト型を作成します。CREATE
TYPE
文では、オブジェクト型の名前、オブジェクトの属性、メソッドおよびその他のプロパティを指定します。CREATE
TYPE
BODY
文には、その型を実装するメソッドに対するコードが含まれます。
call_spec
を定義していないオブジェクト型仕様部に指定された各メソッドには、オブジェクト型本体の対応するメソッド本体を指定する必要があります。
注意: SQLJオブジェクト型を作成する場合は、Javaクラスとして指定されます。 |
前提条件
オブジェクト型用のCREATE
TYPE
仕様部で行われるすべてのメンバー宣言には、それに対応する構造がCREATE
TYPE
文またはCREATE
TYPE
BODY
文内に存在する必要があります。
自分のスキーマ内で型本体を作成または再作成する場合は、CREATE
TYPE
システム権限またはCREATE
ANY
TYPE
システム権限が必要です。他のユーザーのスキーマ内でオブジェクト型を作成する場合は、CREATE
ANY
TYPE
システム権限が必要です。他のユーザーのスキーマ内でオブジェクト型を置換する場合は、DROP
ANY
TYPE
システム権限が必要です。
構文
型本体はPL/SQLを使用して定義されます。このため、このマニュアルの構文図ではSQLキーワードのみを示します。PL/SQLの構文、セマンティクスおよび例については、『Oracle Database PL/SQL言語リファレンス』を参照してください。
create_type_body::=
(plsql_type_body_source
については、『Oracle Database PL/SQL言語リファレンス』を参照してください。)
セマンティクス
OR
REPLACE
を指定すると、既存の型本体を再作成できます。この句を指定した場合、既存の型本体の定義をはじめに削除しなくても、その定義を変更できます。
再作成されたオブジェクト型本体に対する権限を付与されているユーザーは、権限を再付与されなくても、そのオブジェクト型本体を使用および参照できます。
この句を使用した場合、ALTER
TYPE
... REPLACE
文によって追加された仕様部に、新規メンバー・サブプログラム定義を追加できます。
[ EDITIONABLE | NONEDITIONABLE ]
この句を省略すると、型本体は、EDITIONABLE
またはNONEDITIONABLE
を型仕様部から継承します。この句を指定する場合は、型仕様部と一致させる必要があります。
plsql_type_body_source
plsql_type_body_sourceの構文およびセマンティクスについては、『Oracle Database PL/SQL言語リファレンス』
を参照してください。