《Oracle命令语法速查》【 CREATE TYPE 】
タイプオブジェクトを作成する
(可変長配列型)
CREATE [ OR REPLACE ] TYPE [ スキーマ . ] タイプ名 →
→ { IS | AS } ┬ VARRAY ┬ ( 要素数 ) OF <DATATYPE句> ;
└ VARYING ARRAY ┘
(ネスト表型)
CREATE [ OR REPLACE ] TYPE [ スキーマ . ] タイプ名 →
→ { IS | AS } TABLE OF <DATATYPE句> ;
(オブジェクト型)
CREATE [ OR REPLACE ] TYPE [ スキーマ . ] タイプ名 →
→┬──────────────────┬→
└ AUTHID { CURRENT_USER | DEFINER } ┘
[ オブジェクトを実行者の権限で実行する / 所有者の権限で実行する ]
→┬ { IS | AS } OBJECT ───────────┬→
│[ ルートオブジェクトを作成する ]│
└ UNDER [ スキーマ . ] 上位タイプ名 ───┘
[ 指定したタイプのサブタイプを作成する ]
→ [ EXTERNAL NAME java_ext_name LANGUAGE JAVA USING ┬ SQLData ──┬ ] →
├ CustomDatum ┤
└ OraData ──┘
[ SQLJオブジェクト型のファンクション / プロシージャの指定 ]
→┬───────────────────────────────┬→
└ ( ┬ 属性名 <DATATYPE句> [ EXTERNAL NAME ' field_name' ] ┬ ) ┘
│[ オブジェクトを構成するデータ項目属性を宣言する ] │
├ (*1) ────────────────────────┤
└ ← , ────────────────────────┘
→┬────────┬┬───────────┬ ;
└ [ NOT ] FINAL ┘└ [ NOT ] INSTANTIABLE ┘
(*1)[ オブジェクトを構成するメンバー関数を宣言する ]
→┬──────────┬┬────────┬┬───────────┬→
└ [ NOT ] OVERRIDING ┘└ [ NOT ] FINAL ┘└ [ NOT ] INSTANTIABLE ┘
→┬┬ MEMBER ┬ { プロシージャ仕様部 | ファンクション仕様部 } ┬→
│└ STATIC ┘ │
├ { MAP | ORDER MEMBER } ファンクション仕様部 ───────┤
└ ← ────────────────────────────┘
→┬────────────────────────────────┬→
└ , PRAGMA RESTRICT_REFERENCES (┬ メソッド名 ┬ , ┬ RNDS ┬) ┘
[ コンパイラ指示を指定する ] └ DEFAULT ─┘ ├ WINDS ┤
├ RNPS ┤
├ WINPS ┤
├ TRUST ┤
└ ← , ─┘
(不完全なオブジェクト型)
CREATE [ OR REPLACE ] TYPE [ スキーマ . ] タイプ名 ;