是为了学习而已。
不过现在难道就没有公司使用Oracle的面向对象功能吗?抽象数据类型是最基本的功能啊!

解决方案 »

  1.   

    关于自定义类型的使用 
    http://www.itpub.net/179351.html
      

  2.   

    person是一个对象列,所以返回的是一个对象,
    因此你在从表中读取数据时不能指定对象中的成员。
      

  3.   

    SQL> create or replace type ADDRESS_TY as object
      2   (Street VARCHAR2(50),
      3   City VARCHAR2(25),
      4   State CHAR(2),
      5   Zip NUMBER);
      6  /类型已创建。SQL> 
    已写入文件 afiedt.buf  1  create or replace type PERSON_TY as object
      2  (Name VARCHAR2(25),
      3  Address ADDRESS_TY,
      4* member function get_name return varchar2);
    SQL> @afiedt.buf类型已创建。SQL> create or replace type body person_ty as
      2  member function get_name return varchar2 is
      3  begin
      4  return name;
      5  end get_name;
      6  end;
      7  /类型主体已创建。SQL> create table customer(
      2  customer_id number,
      3  person person_ty);表已创建。SQL> insert into customer values(
      2  1,person_ty('name',address_ty('aaa','bbb','cc',111)));已创建 1 行。提交完成。SQL> select customer_id,person_ty.get_name(person) from customer;CUSTOMER_ID
    -----------
    PERSON_TY.GET_NAME(PERSON)
    --------------------------------------------------------------------------------
              1
    name