我想添加一个名为credcomp的成员方法来计算学生完成的学分数。只有学生获得至少50分的单位才算作完成。谁能告诉我如何创建这种方法?这是我到目前为止所做的:
ALTER TYPE student_t REPLACE AS OBJECT (
sid integer,
name varchar(15),
phone varchar(10),
course ref course_t,
enrolments enrolled_list,
MEMBER FUNCTION crdcomp RETURN NUMBER);
/
CREATE OR REPLACE TYPE BODY student_t AS
MEMBER FUNCTION crdcomp RETURN NUMBER IS
pcount integer;
BEGIN
---still not done part
END;
END;
/
我的表和对象类型如下:
- 对象类型
CREATE TYPE course_t AS OBJECT (cid integer, title varchar(15), credits_req integer);
/
CREATE TYPE unit_t AS OBJECT (unitid integer, credits integer);
/
CREATE TYPE offering_t AS OBJECT (unit ref unit_t, semester number(1), year number(4));
/
CREATE TYPE enrolled_t AS OBJECT (unitoffer ref offering_t, mark integer);
/
CREATE TYPE enrolled_list AS TABLE OF enrolled_t;
/
CREATE TYPE student_t AS OBJECT
(sid integer, name varchar(15), phone varchar(10), course ref course_t , enrolments enrolled_list);
/
- 表
CREATE TABLE Courses OF course_t (PRIMARY KEY (cid));
/
CREATE TABLE Units OF unit_t (PRIMARY KEY (unitid));
/
CREATE TABLE Offered OF offering_t (FOREIGN KEY (unit) REFERENCES Units, unit NOT NULL);
/
CREATE TABLE Students OF student_t (PRIMARY KEY(sid), FOREIGN KEY (course) REFERENCES Courses)
NESTED TABLE enrolments STORE AS enrolledlist_ntab;
/
提前感谢您的帮助。 :)
答案 0 :(得分:0)
您应该使用alter type ... add member
ALTER TYPE student_t
ADD MEMBER FUNCTION crdcomp RETURN NUMBER);
/
然后是你的创建主体
也检查 oracle docs alter_type