Oracle 如何在超类型表中定义子类型列的范围?
我使用一个超类型表来包含超类型和子类型的所有数据。但我不知道如何定义子类型的引用列的范围 例如:Oracle 如何在超类型表中定义子类型列的范围?,oracle,Oracle,我使用一个超类型表来包含超类型和子类型的所有数据。但我不知道如何定义子类型的引用列的范围 例如: CREATE OR REPLACE TYPE PersonObj AS OBJECT( oid integer, id integer, name varchar(20), street varchar(20), city varchar(10), state varchar(20), zipcode varchar(5), birthDate date, kidNames set_kids, pi
CREATE OR REPLACE TYPE PersonObj AS OBJECT(
oid integer,
id integer,
name varchar(20),
street varchar(20),
city varchar(10),
state varchar(20),
zipcode varchar(5),
birthDate date,
kidNames set_kids,
picture varchar(100),
place LocationAdt
) NOT FINAL;
/
CREATE OR REPLACE TYPE StudentObj UNDER PersonObj (
studentId varchar(10),
major REF DepartmentObj,
advisor REF ProfessorObj,
hasTaken set_ref_enrolledobj);
/
我想这样定义范围:
CREATE TABLE person OF personobj (id PRIMARY KEY,
major SCOPE IS department,
advisor SCOPE IS professor)
OBJECT IDENTIFIER IS PRIMARY KEY
NESTED TABLE kidNames STORE AS student_kidnames,
NESTED TABLE hastaken STORE AS student_hastaken;
但它返回错误ORA-00904:“主要”:无效标识符
如何在超类型表中描述子类型的引用列的范围?
创建了表部门和教授
更多信息:
CREATE TABLE student OF studentobj (id PRIMARY KEY,
major SCOPE IS department,
advisor SCOPE IS professor)
OBJECT IDENTIFIER IS PRIMARY KEY
NESTED TABLE kidNames STORE AS student_kidnames,
NESTED TABLE hastaken STORE AS student_hastaken;
上面的命令是成功的
谢谢你提供的任何信息