현재 oracle 11g에 type 객체가 있습니다.유형 객체에 색인을 만드는 방법은 무엇입니까?
테이블
CREATE TABLE students (rollno NUMBER(15) primary key, s_Name VARCHAR2(20), Marks type_1 );
유형의 객체 사양 그것은 몸
CREATE OR REPLACE type body type_1 AS member FUNCTION total RETURN NUMBER IS BEGIN RETURN (sub_1+sub_2+sub_3); END; member FUNCTION e_result RETURN VARCHAR2 IS DECLARE temp NUMBER; BEGIN temp :=sub_1+sub_2+sub_3; IF(temp>50) THEN RETURN ('pass'); ELSE RETURN ('fail'); END IF; END; END;
CREATE OR REPLACE type type_1
AS
object
(
sub_1 NUMBER,
sub_2 NUMBER,
sub_3 NUMBER,
member FUNCTION total
RETURN NUMBER,
member FUNCTION e_result
RETURN VARCHAR2);
입니다 : 다음과 같이에서 난 DB 개체가 10
은 후 나는 성공적으로 내가 tot
열 e_result
열 및 일반 인덱스 비트 맵 인덱스를 만들 필요가
BEGIN
FOR i IN 1..800 LOOP
FOR j IN 1..400 LOOP
INSERT INTO students
VALUES (sequence1.NEXTVAL,
dbms_random.String('A', 5),
Type_1(Round(dbms_random.Value(10, 100)), Round(
dbms_random.Value(10, 100)), Round(dbms_random.Value(10, 100))));
END LOOP;
END LOOP;
dbms_output.Put_line('completed');
COMMIT;
END;
/
사용하여 학생 테이블을 채워 한 경우에도 모든 일을 만들 수 있습니다.
나는
create index id1 on students(marks.total)
및
create bitmap index bid1 on students(marks.e-result)
을 시도하지만 수 없습니다. 내가 뭘해야하니?
궁금한 점은 왜 객체의 중첩 테이블을 만들겠습니까? 단순히 MARKS 테이블을 만들고 필요에 따라 학생과 합류하는 것보다? 하지만 이것은 pl/sql에서의 연습 일뿐일까요? – tbone
@ tbone : ya ya ya 정확하게 ... 이것은 유형의 객체 야! –