目前我正在使用 oracle 11g 中的类型对象。在这我有如下数据库对象:
桌子
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)
但我不能。我应该做些什么?