下面是一个例子:首先测试用例:
SQL> create type beertype as object(
2 name char(20),
3 seller char(20)
4 );
5 /
Type created.
SQL> create type menu as object(
2 beer ref beertype,
3 price float
4 );
5 /
Type created.
SQL> create table sells of menu;
Table created.
SQL> create table beer of beertype;
Table created.
SQL> insert into beer (name, seller) values ('Heineken', 'KTC');
1 row created.
SQL> insert into beer (name, seller) values ('Tuborg', 'Plodine');
1 row created.
SQL> insert into sells (beer, price) values ((select ref(b) from beer b where name = 'Heineken'), 10);
1 row created.
SQL> insert into sells (beer, price) values ((select ref(b) from beer b where name = 'Tuborg'), 2.5);
1 row created.
选择价格大于3.5的啤酒名称的查询:
SQL> select b.name, s.price
2 from sells s join beer b on value(b) = deref(s.beer)
3 where s.price > 3.5;
NAME PRICE
-------------------- ----------
Heineken 10
SQL>
Using REF Values for Retrieval of Data Values