create type emp_t as object
( emp_no varchar2(7),
  emp_name varchar2(10),
  sal char(5),
  comm char(5),
  job varchar2(10)
);create type dept_t as object
( dept_no varchar2(5),
  dept_name varchar2(10),
  dept_tel varchar2(15),
  dept_emp setof(ref(emp_t))
);
/
创建上面这个时错误提示:必须声明 setof
怎么个声明法?

解决方案 »

  1.   

    不知道LZ是不是要把dept_emp 定义为emp_t吧,那这样就可以啊
    create or replace type dept_t as object
    (
      dept_no   varchar2(5),
      dept_name varchar2(10),
      dept_tel  varchar2(15),
      dept_emp  emp_t
    )
      

  2.   

    我是想把表建成这样
    emp_no ....  emp_no  ......
    1001          1001001
                  1001002
                  1001003
    一个部门管理三个员工,只想让部门信息出现一次
    而不是每个员工信息前面都有部门信息
    这样能实现吗??
      

  3.   


    应该可以的,你把部门所有下面的员工no都用 空格串起来放在一列就行了啊,比如
    ----------------------------------------------
    emp_no ....         emp_no       ...... 
    1001          1001001 1001002 1001003 不就搞定了吗?