0

这是我在课程中找到的代码

 create type employee_type AS OBJECT
    ( empno number(4),
    ename varchar2(40),
    dept_ref REF department_type)
    /
    create table employee of employee_type
    ( empno PRIMARY KEY )
    /
    create type department_type AS OBJECT
    ( deptno number(2),
    dname varchar2(20),
    loc varchar(20))
    /
    create table employee of employee_type
    ( empno PRIMARY KEY )
    /
    create table department of department_type
    ( deptno PRIMARY KEY )
    /
    alter table employee
    add (scope for (dept_ref) is department)
    /

我不明白为什么我们需要更改员工表来为部门表添加范围,我的意思是 dept_ref 已经被引用到部门类型并且部门表由部门类型对象组成,添加范围语句是做什么的?

4

1 回答 1

1

文档中所述,目的是说dept_refinemployee必须特别引用 a department,而不是任何其他类型的表department_type

请参阅REF 列:示例

dept列可以存储对dept_t存储在任何表中的对象的引用。如果您想将引用限制为仅指向存储在departments表中的对象,那么您可以通过在dept列上添加范围约束来实现,如下所示...

(显然,人们喜欢从员工和部门领域举出例子)

于 2016-09-12T08:37:38.163 回答