ユーザー定義データ型の使用について

JDeveloperでは、独自のデータ型を定義できます。次の2種類があります。

オブジェクト型

オブジェクト型は、発注書など、アプリケーション・プログラムで処理する実社会のエンティティを抽象化したものです。オブジェクト型は、次の3種類のコンポーネントを持つスキーマ・オブジェクトです。

オブジェクト型はテンプレートです。テンプレートにあわせて構造化されたデータ・ユニットをオブジェクトと呼びます。

JDeveloperでは、オブジェクト型仕様、またはオブジェクト型仕様および本体を作成できます。

オブジェクト型仕様

新規のオブジェクト型仕様を作成する場合は、次のようにします。

TYPE TYPE1 AS OBJECT (a null );

オブジェクト型本体

CREATE TYPE TYPE1 AS VARRAY(1) OF null;
/

コレクション型

各コレクション型では、すべて同一のデータ型を持つ不定の数の要素で構成されるデータ・ユニットを記述します。コレクション型は、配列型と表タイプです。

配列型と表タイプはスキーマ・オブジェクトです。対応するデータ・ユニットはVARRAYとネストした表です。混同するおそれがなければ、通常はコレクション型をVARRAYおよびネストした表と呼びます。

コレクション型はコンストラクタ・メソッドを持ちます。コンストラクタ・メソッド名は型の名前で、引数は新規コレクションの要素をカンマで区切ったリストです。コンストラクタ・メソッドはファンクションで、値として新規コレクションを戻します。

型名とそれに続く空の丸カッコで構成される式は、その型を持つ空のコレクションを作成するためのコンストラクタ・メソッドのコールを表します。空のコレクションは、NULLのコレクションとは異なります。

JDeveloperでは、配列型と表タイプを作成できます。

配列型

TYPE TYPE1 AS VARRAY(1) OF null;

表タイプ

TYPE TYPE1 AS TABLE OF null;

注意: プロジェクトがOracle以外のデータベース用に構成されている場合は、型の作成をサポートしている必要があります。

詳細は、Oracle Technology Network(OTN)(http://download.oracle.com/docs/cd/B19306_01/server.102/b14220/objects.htm)で入手可能な『Oracle Database概要』でオブジェクト・データ型とオブジェクト・ビューに関する第27章を参照してください。