現在、Oracle 11g で型オブジェクトを使用しています。これには、次のような DB オブジェクトがあります。
テーブル
CREATE TABLE students (rollno NUMBER(15) primary key, s_Name VARCHAR2(20), Marks type_1 );
型オブジェクト指定は
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);
本体です
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;
これらすべてのものを作成した後、私は学生テーブルを正常に作成しました
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;
/
列にビットマップ インデックスを作成し、e_result
列に通常のインデックスを作成する必要がありtot
ます。
私が試してみました
create index id1 on students(marks.total)
と
create bitmap index bid1 on students(marks.e-result)
しかし、私はできません。私はどうしたらいいですか?