Oracle8をORDBMSとして使う場合、たとえば次のようにテーブルを定義することが可能です。

  create type tadre as object (
    name varchar2(40),
    adre varchar2(200),
    tel  varchar2(12)
  );

  create type ttadre as varray(3) of tadre;

  create table test (
    item1 char(10),
    item2 char(10),
    adre  ttadre
  );
  insert into test values ('a001', 'b002',
    ttadre(
      tadre(1, '山田太郎', '東京都目黒区大岡山1-1-1', '03-3333-3333'),
      tadre(2, '佐藤花子', '東京都世田谷区深澤1-1-1', '03-4444-4444'),
    )
  );

上記の例で、SELECT adre from test where item1 =
a001で取得したadreフィールドは、オブジェクト型になりますが、
DOAを使って以下のようにこのオブジェクトから各プロパティ(name, adre, tel)
にアクセスすることが可能です。(DOA Object Versionのみ。詳しくは
TOracleObject,
TOracleReferenceのヘルプを参照してください)

  //OracleQuery.SQL = SELECT adre from test where item1 = :item1

  with OracleQuery do begin
    SetVariable('item1', Item1);
    Open;
    Adr := OracleQuery.ObjField('adre');
    if not Adr.IsNull then
      showmessage(Query.Field('item1').AsString + ' ' + Adr.GetAttr('name'));
  end;