【发布时间】:2018-10-29 08:51:48
【问题描述】:
CREATE OR REPLACE TYPE CURSOR AS OBJECT(
code varchar2(20),
className varchar2(30),
teach1 Teacher,
maximumPupils number,
maximumHours number,
CONSTRUCTOR FUNCTION cursor(code varchar2, className varchar2, passport Teacher, maximumPupils number, maximumHours number) RETURN SELF AS RESULT
)NOT FINAL;
CREATE OR REPLACE TYPE BODY CURSOR
AS
CONSTRUCTOR FUNCTION cursor(code varchar2, className varchar2, passport Teacher, maximumPupils number, maximumHours number) RETURN SELF AS RESULT
IS
BEGIN
SELF.code := code;
SELF.className := className;
SELF.passport:=passport;
SELF.maximumPupils := maximumPupils;
SELF.maximumHours := maximumHours;
END;
------------------------
CREATE TABLE SubjectClass OF Cursor;
-----------------------------------------
BEGIN
insert into SubjectClass values(1,'Class 1','43345678F',30,55);
END;
我已经尝试了以下所有方法(包括使用完整的构造函数引用),仅使用我愿意插入或引用存在的另一个表的教师对象的属性 .passport(此护照号以前存在于另一个名为 Teachers 的对象类型表中):
INSERT INTO SubjectClass VALUES('1','Class 1', Teacher.passport('12345678A'),20,25);
INSERT INTO SubjectClass 值(1,'Class 1','43345678F',30,55);
请帮忙,我马上要考试了。
【问题讨论】:
标签: database oracle object types oracle11g