2016-06-17 4 views
1

credcomp라는 멤버 메소드를 추가하여 학생이 완료 한 크레딧 수를 계산하고 싶습니다. 학생이 50 점 이상을받은 부분 만 완성 된 것으로 간주됩니다. 아무도이 방법을 만드는 방법을 말해 줄래?오라클 SQL 문을 사용하여 멤버 메소드를 추가하여 오브젝트 유형을 수정하십시오.

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); 
/

--tables

--Object 유형

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

당신은 회원에게

ALTER TYPE student_t 
ADD MEMBER FUNCTION crdcomp RETURN NUMBER); 
/

을 추가 ... 유형을 변경 사용해야합니다 그리고 당신의 몸

검사도 오라클 문서를 만들 alter_type