用途
型本体は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_sourceについては、『Oracle Database PL/SQL言語リファレンス』を参照してください。)
セマンティクス
OR REPLACEを指定すると、既存の型本体を再作成できます。この句を指定した場合、既存の型本体の定義をはじめに削除しなくても、その定義を変更できます。
再作成されたオブジェクト型本体に対する権限を付与されているユーザーは、権限を再付与されなくても、そのオブジェクト型本体を使用および参照できます。
この句を使用した場合、ALTER TYPE ... REPLACE文によって追加された仕様部に、新規メンバー・サブプログラム定義を追加できます。
plsql_source
plsql_sourceの構文およびセマンティクスについては、『Oracle Database PL/SQL言語リファレンス』を参照してください。