Oracle 嵌套表约束

Udi*_*han 5 sql oracle

如何在oracle中的嵌套表中添加CHECK约束?

\n\n

对象类型:

\n\n
Depend_t (depname: varchar2(12), gender: char(1), bdate: date, relationship:varchar2(10))\n
Run Code Online (Sandbox Code Playgroud)\n\n

Depend_t 的 Dependtb_t 表

\n\n
Emp_t (eno: number(4), ename: varchar2(15), edept: ref dept_t, salary: number(8,2),\n
Run Code Online (Sandbox Code Playgroud)\n\n

家属:dependtb_t)

\n\n
Dept_t (dno: number(2), dname: varchar2(12), mgr ref emp_t)\nProj_t (pno: number(4), pname: varchar2(15), pdept ref dept_t, budget: number(10,2))\nWork_t (wemp: ref emp_t, wproj: ref proj_t, since: date, hours: number(4,2))\n
Run Code Online (Sandbox Code Playgroud)\n\n

表格:

\n\n
Emp of Emp_t (eno primary key, edept references dept, nested table dependents store as dependent_tb)\n\nDept of Dept_t (dno primary key, mgr references emp)\nProj of Proj_t (pno primary key, pdept references dept)\nWorks of Works_t (wemp references emp, wproj references proj)\n
Run Code Online (Sandbox Code Playgroud)\n\n

和表Emp, Dept,分别Proj包含所有员工、部门和项目的元组。Emp的属性employee number (eno), name (ename), employee\xe2\x80\x99s department (edept), salary和依赖项集合存储为嵌套表。关系属性可以仅具有\xe2\x80\x98SPOUSE\xe2\x80\x99\xe2\x80\x98CHILD\xe2\x80\x99作为值,性别可以是\xe2\x80\x98M\xe2\x80\x99\xe2\x80\x98F\xe2\x80\x99,并且bdate记录家属的出生日期。

\n\n

这里如何在嵌套表中添加'M'or约束?'F'

\n

Ton*_*ews 3

来自Oracle 12C SQL 参考

检查约束的限制

检查约束受到以下限制:

...

  • 检查约束的条件不能包含以下结构:

    ...

    • 嵌套表列或属性...

这就是为什么嵌套表几乎从未在实际数据库中使用,仅在探索 Oracle 所有功能的课程中使用的众多原因之一!