我正在使用 Oracle (18.4.0) 设计对象关系模型,我想向SCOPE
对象表的表类型列添加约束。可能吗?这是一个简化的模型:
CREATE OR REPLACE TYPE t_cycler AS OBJECT (
name VARCHAR2(50)
);
CREATE TABLE cycler OF t_cycler (
name PRIMARY KEY
);
CREATE OR REPLACE TYPE t_cycler_list IS TABLE OF REF t_cycler;
CREATE OR REPLACE TYPE t_team AS OBJECT (
name VARCHAR2(50),
cyclers t_cycler_list
);
CREATE TABLE team OF t_team (
name PRIMARY KEY
)
NESTED TABLE cyclers STORE AS cyclers_tab;
我需要team.cyclers
只包含REF
s 中的对象cycler
。我查看了文档,但不幸的是它并没有说明很多关于SCOPE
约束的内容,比如这里:
您可以约束列类型、集合元素或对象类型属性以引用指定的对象表。声明 REF 时使用 SQL 约束子条款 SCOPE IS。
但它提供的唯一示例是关于一个简单的列类型。我尝试SCOPE IS cycler
在team
表的创建中以多种方式指定,但没有结果。